问题标签 [thread-synchronization]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
63 浏览

jakarta-ee - 两个浏览器同时查询在Brow2中给出Brow1的resultSet

我正在使用相同的用户登录凭据并连接相同的 DB在两个不同的浏览器(Brow1 和 Brow2)中登录 JavaEE Web 应用程序。登录后,我正在执行来自 Java 的查询以在 resultSet 中获取一个 excel 文件。如果我同时在两个浏览器中触发查询,我会在 Brow2 中获得 Brow1 的结果集,而 Brow1 会引发空异常错误。

在分析记录器时,我发现 brow1 和 brow2 具有不同的会话 ID。我也尝试过同步,但这不是一种有效的方式并且需要更多时间。

我有没有错过什么。有没有其他方法可以解决这个问题。请帮我。

0 投票
2 回答
600 浏览

java - 使用 Pipe Java 多线程进行通信

在此处输入图像描述

你好 !我有一个小问题。我只是学习多线程,还不了解所有内容。

我有 3 个线程:1 和 2 随机生成一个矩阵,并且在每一步之后,它们通过管道矩阵元素发送类似的参数。3-d 线程比较它们并写入结果,然后第 1 步和第 2 步执行下一步,然后一次又一次地重复 5 次。

我的问题:我需要同步所有的踏板才能正常工作。这个问题与生产者/消费者问题有相似之处,但这里有 2 个生产者和 1 个消费者。




}

0 投票
4 回答
105 浏览

java - 线程和同步

我需要为以下内容创建一个 java 程序:

  1. 创建一个 ArrayList 来存储员工的姓名。
  2. 创建两个同步方法以将员工姓名添加到 ArrayList 并打印员工姓名。
  3. 两个线程完成添加员工后,打印员工姓名。

我已经完成了以下操作,但它不起作用。它在“pr.print(X)”行给出了一个例外。有人可以帮忙吗?这不是我的作业!!!我只是想学习。

0 投票
0 回答
178 浏览

c++ - 等待来自外部的特定调用的 QObject(类似于 QFuture 的异步结果包装器)

我想编写一个可以等待某人调用特定函数的类(QObject 派生)。然后这个类将用于保存异步操作的结果(在幕后它是一个远程过程调用)。该类的接口应如下所示:

当然,这个类应该是线程安全的,也就是说

  • 等待结果的线程可能与调用的线程不同setDone
  • 多个线程可以请求结果

也许这可以通过 QFuture 来完成。不过就算是,我也想自己实现一次这样的机制,以便学习Qt中的线程同步。如果您知道如何使用 QFuture 进行操作,您可以发表评论。

我想出的是以下内容。我还继承了QMutex一个类似于 Java 的机制synchronize(this)。另外,我添加了一个bool _done成员:

这是一个正确的实现吗?

我的一个朋友想出的另一个解决方案是将互斥锁锁定在构造函数中,将结果标记为not be done。在setDone中,解锁互斥体,并waitForFinished使用等待条件等待互斥体解锁。我从未使用过QWaitCondition,所以我不知道这是否符合我的要求。

0 投票
2 回答
982 浏览

cuda - CUDA 中 if/else 块内的线程同步

我想在 CUDA 中实现高斯消除。但是我在 if/else 中的线程同步有问题。

这是我的简单代码:

它是这样工作的:

  1. 将矩阵复制到共享内存中。
  2. 遍历行。
  3. 将行除以对角线上的值。

问题出在 for 循环内的 if/else 块内 - 死锁:

我不知道为什么会这样。当我从 if/else 块中删除同步时,它可以工作。有人可以解释一下吗?

0 投票
2 回答
609 浏览

android - Android线程有时不启动

我必须在 Android 项目中使用 Thread。有时,它可以正常工作,但有时不能;它不启动(不调用 SendToServer() 方法)或它启动但在线程未完成之前突然返回到另一个函数(返回更新;行)。

注意:影响值大于 0,它给出条件,它转到 if 语句。

这是我的代码示例;

0 投票
0 回答
419 浏览

mpi - 与 boost::mpi 发送/接收消息同步?

我用“-np 2”调用 mpirun。我将等级 0 的进程称为“主”,将等级 1 的进程称为“从”。

目标:

  1. master 偶尔会向 slave 发送消息,例如mpi::send(1, UPDATE, data);. 其他消息类型包括 DIE、COMPUTE ...等。这些消息类型是具有唯一值的常量整数。
  2. slave 运行一个无限循环,“监听”来自 master 的任何消息。当它收到一条消息时,它会向主设备发送一个确认。

执行:

从运行:

当主人运行时:

主代码的更多上下文:

输出:

...

奴隶准备接受命令

主发送更新

奴隶收到更新

从机发送 UPDATE_ACK

主控收到 UPDATE_ACK

奴隶准备接受命令

...

奴隶准备接受命令

主发送更新

奴隶收到更新

从机发送 UPDATE_ACK

奴隶准备接受命令

...

问题: 主人第一次发送更新消息时,一切似乎都很好。但是,在第二次中,主服务器没有收到 UPDATE_ACK。

0 投票
1 回答
287 浏览

c# - 在 C# 应用程序中查找命名互斥锁

如果我没有该应用程序的源代码,如何在正在运行的 C# 应用程序中找到命名的互斥锁?

0 投票
2 回答
158 浏览

java - 老 C++ 程序员,Java 新手,需要 Java 多线程和事件方面的帮助

我正在将使用串行端口的 C++ 程序(更准确地说是 Borland“组件”)“转换”为 Java。该程序使用一个线程来侦听串行端口,并在接收到给定的“事件字符”之一(它可能是回车、ACK、NACK ......)或当用户定义数量的字符被接收。

在尝试用 Java 转换它时,我学到了一些关于线程的知识,让它半工作。我仍然需要了解如何将事件从侦听线程引发到主线程......然后我了解到 Executors 的存在,这似乎是正确的方法,因为用户可以关闭、重新打开或更改多次使用端口并每次创建一个新线程似乎是一种不好的做法。

因此,在 Java 并发海中挣扎了好几天之前,在“原始”线程上花费了这么多工作之后,我会寻求建议,也许还有一点样本。

我应该使用什么样的对象(我看到有各种类型的执行器)来拥有一个串行侦听器:

  • 能够向主线程抛出一个事件以传递接收到的字符数组
  • 可以暂停和重新启动(并且可以在暂停时指向不同的输入流......我的意思是我可以在暂停时调用它的一些方法)
  • 它会在不需要时被销毁(用户可以选择使用套接字,因此不再需要监听器)

? 我真的不知道其中一些点是否取决于我将选择的对象,所以我将它们全部列出,以避免再次重新做所有事情,因为我不清楚。

谢谢。

0 投票
2 回答
1955 浏览

c# - WinCE中的线程同步

我遇到了线程同步的问题。我的演示者分析了一些传感器并更新了 UI 表单。我将更新代码移动到单独的线程中。它工作正常,但是如果用户在更新视图时停止演示者,软件就会冻结 - 我发现它发生在 view.UpdateUI 工作时(它只是使用 Invoke 设置了一些标签)。我的问题在哪里?我使用紧凑型框架 3.5 和 Windows CE 5