问题标签 [synchronisation]

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 投票
0 回答
165 浏览

windows - Cannot create a globally named event in low integrity process

I have a code which works fine:

But when I run it from the low integrity process, the hEvent is 0 and GetLastError() returns ERROR_ACCESS_DENIED.

How can I create an event in this case?

0 投票
1 回答
171 浏览

multithreading - Synchronisation: Client, Server Chat

I am writing a Client, Server-based chat. The Server is the central component and handles all the incoming messages and outgoing messages. The clients are that chat users. They see the chat in a frame and can also write chat messages. These messages are sent over to the server. The server in turn updates all clients.

My problem is synchronisation of the clients. Since the server is multi-threaded, both messages can be received from clients and updates (in form of messages) have to be sent out aswell. Since each client is getting updated in in its own thread, there is no guarantee that all clients will receive the same messages. We have a snychronisation problem.

How do I solve it?

I have messed with timestamps and a buffer. But this is not a good solution again because there is no guarantee that after assigning a timestamp the message will be put into the buffer immediately afterwards.

I shall add that I do not know the clients. That is, I only have one open connection in each thread on the server. I do not have an array of clients or something like that to keep track of all the clients.

0 投票
0 回答
646 浏览

opengl - 如何实现OpenGL GPU到CPU同步

OpenGL Wiki 在Swap Interval主题页面的最后一段中讲述了一些关于 GPU/CPU 同步的有趣内容:

如果需要 GPU<->CPU 同步,则应在缓冲区交换后使用高精度/多媒体计时器而不是 glFinish。

glFinish()glFenceSync()正如引用的文本所建议的那样,基于或基于方法的方法效果不佳。我相信那些高精度/多媒体计时器不是OpenGL规范的一部分。所以:

有谁知道如何使用高精度/多媒体计时器以便在垂直同步显示器上的缓冲区交换后立即调用一些 CPU 代码(也许获取时间戳)?

我的目标是使用 C++ 编写并在 Linux 上编译的解决方案,但任何库名称、代码位或直觉都会有很大帮助!

0 投票
1 回答
16848 浏览

c - 使用信号量睡觉的理发师

我在线程同步时遇到问题。我正在尝试以不同的方法实现睡眠理发师问题。当我运行代码时,线程以完全模糊的方式运行。当我将连接添加到线程时,进程会一一运行,这不是必需的。我知道睡眠理发师问题的解决方案,但谁能告诉我这段代码有什么问题。?

谢谢你

}

0 投票
2 回答
118 浏览

java - 同步方法是否在进入非同步块时释放锁?

我有一个同步方法 A() 正在锁定类,并在其主体中调用另外两个非同步方法 B() 和 C()。我的问题是,当控制从 A() 移动到 B() 时,它会释放类上的锁,并且在 B 执行完成后控制权返回时会重新获取它。

请帮忙。提前致谢。

0 投票
1 回答
178 浏览

vb.net - dotNet:有没有办法在 UI 线程上执行 Join 语句?

我正在编写一个简单的线程应用程序:单击开始按钮时,应用程序禁用此按钮,运行 5 个线程,只需进行 For 迭代并更新 5 个 ProgressBars。最后一个线程正在等待线程结束,以重新启用我的开始按钮。

问题:用户在进度条达到 100% 之前看到按钮已启用......并且进度条仍在更新!

有什么问题?有没有办法在 UI Thread 上做一个 join 语句?

这是代码:


编辑:感谢链接 Bjørn-Roger Kringsjå。所以有一个解决方法:增加并直接减少值跳过动画。对于最大值,将其设置为最大值,减1,加1...仍然有一点滞后,但是确实比在ProgressBars在中间时启用按钮要好:)

0 投票
1 回答
161 浏览

java - 同步 JAVA - 文件锁

我有以下代码,它是多线程服务器代码的一部分:

我已经读过java中的“同步”,但我没有猜到如何将它集成到我的代码中,我想在用户使用它时锁定文件“密钥”,以便另一个用户同时无法访问它如果其他人已经在使用它(出于安全原因),有什么想法吗?

0 投票
1 回答
55 浏览

multithreading - POSIX 线程同步

嗨朋友们,我在这里遇到线程同步问题。我对线程很陌生,这就是为什么要向你们寻求帮助。在我的代码中,我必须从串口读取数据,然后将数据发送到 UDP 端口。为此,我有两个额外的线程。在第一个线程中,我正在无限循环中读取数据,而在第二个线程中,我正在做一些处理然后发送。

问题是我在第二个线程中没有得到 buff1[0] 的值,其整数值为== 1,这意味着我很少得到值 ==1。但在第一个线程中,我不断获得 buff1[0] 的值。

我怀疑这是因为我没有使用互斥锁。如果有必要,我想知道如何在我的代码中使用互斥锁。请指导我改进我的源代码
下面是我的代码

问题是 buff1[0] 的值是 SOH(标题开始),其整数值 ==1 每次都不能在第二个线程中使用。

0 投票
2 回答
4670 浏览

java - 一个生产者多个消费者的表现

我的 Java 程序具有客户端-服务器架构。在客户端,我创建了 1 条消息,并使用 10000 个线程将其发送到服务器,因为 10000 个客户端同时发送一条消息。在服务器类端,我有固定大小的队列,每条消息首先必须放入这个队列。然后用多个通道(或多个客户端)在同一时间读取消息。如果一个通道(或消费者)读取一条消息,则必须从队列中删除该消息。但是多个频道并没有比一个频道给我足够的性能。我认为线程同步存在问题。如何优化我的程序?这是我的程序。

在客户端我有一个可运行的类(我显示类的重要部分)用于发送消息

在主要客户类别中

在服务器端,我写入队列

并读取此缓冲区并发送到 Oracle DB 消息

我创建的多个频道

最后在服务器类中,我启动了 2 个线程,一个线程写入缓冲区,另一个创建通道以从队列读取并写入数据库。

0 投票
2 回答
87 浏览

c++ - 将 pi 示例转换为多线程以提高 C++ 中的速度时出错

我需要转换这个运行迭代的程序,将迭代步骤分成 4 个线程。如果迭代为 n,那么我使用 4 个线程执行它。该程序平均需要 4.7 秒才能运行。所有 4 个线程都可以访问总和,并且在更新时存在问题。对于 pi 的值,我得到 1.5 而不是 3.1457 作为答案。线程也不会减少时间。请帮我