问题标签 [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 投票
8 回答
1582 浏览

java - C ++多线程问题-互斥锁是唯一的方法吗?

我有一个计数器变量,它将被多个线程访问,这些线程将递增/递减它。它不应该被多个线程同时更新。

我知道您可以创建一个互斥对象,必须在更改相关变量之前获取该对象。在这种情况下,临界区是不合适的,因为有超过 1 个函数可以更改相关变量。

有没有另一个我可以在不使用互斥锁的情况下做到这一点?使用互斥锁确实会降低性能(请参阅http://www.codeguru.com/forum/showthread.php?t=333192)。我相信在 Java 中,您可以在变量声明中使用一个关键字来完成此操作(是否称为“同步”?),但是在 C++ 中是否有这样的事情呢?

我知道 volatile 不是我要寻找的关键字。

非常感谢。

0 投票
1 回答
425 浏览

c# - 最快同步

我有以下场景:
该程序有一个读取器和一个写入器线程到一个外部应用程序的套接字。读者和作者需要在协调的循环中工作。
写入器向套接字发送动态数量的消息 (x),读取器需要从套接字读取响应。每个周期的消息数量超过 5 到 10k。消息的接收顺序与发送的顺序不同,并且消息具有清晰的布局,因此可以确定单个消息。
读者需要阅读 x 条消息,然后在 . 阅读器完成读后处理后,作者需要重新开始向套接字发送。
从你的 pov 中最快的同步是什么?

  • 使用写入消息的数量向套接字发送特殊消息?(即使套接字上没有 FIFO 保证)
  • 使用经典的锁定对象?
  • 对具有写入消息数量的整数使用原子事务,并让编写者只更新一次整数?

    我是否错过了任何其他快速同步机制?

0 投票
1 回答
293 浏览

wpf - 偶尔在线app数据同步

我正在编写一个应用程序,它由一个主“服务器”数据库(很可能是 sqlite)和一个带有客户端特定记录的客户端副本(同样是 Sqlite)组成。客户端可能只是偶尔在线,或者可能使用慢速 3G 连接;我需要一种解决方案来可靠地按需或按计划的时间间隔同步内容。客户端应用程序可以是 WPF/Silverlight 或 HTML5(因此首选 sqlite)。

我一直在研究 Microsoft Synchronization framework 2.0,但显然这不适用于 HTML5,我希望保持架构尽可能一致。还有其他想法吗?

谢谢。

0 投票
1 回答
1172 浏览

iphone - ZSync 教程 - 在设备之间同步 CoreData 数据

我有兴趣在 iPhone、iPad 和 MacOSX 上运行的几个应用程序之间同步 CoreData 数据。我从 Zarra 先生那里找到了 ZSync 项目,但没有找到任何相关教程。我联系了 Zarra 先生,他一直致力于改进 ZSync(谢谢),但还没有计划编写教程。

你们中的任何人都在您的应用程序中实现了 ZSync 功能,并且可以提供快速教程或此类教程的链接吗?

0 投票
3 回答
13536 浏览

java - 同步异步任务的最佳方式

我的问题:我将 802.15.4 无线网络连接到串行端口(使用包装器)。我可以将包发送到网络并监听传入的包。你可以想象这是高度异步的。

任务来了:我想向网络发送命令并在一个函数调用中等待响应。例如:我想从网络 ID 为 1338 的节点获取温度。

除了做所有这些“同步(对象)等待(..)通知(..)”的东西之外,还有更好的方法来等待响应消息吗?

最好的问候,比格博恩

也许添加一些香料:

这一切都应该以用户可以请求这些命令(通过 ajax 或直接)的 web 界面结束。我还考虑过在数据库中缓存响应值。但是对于某些命令,您必须直接回答成功/失败

0 投票
2 回答
3330 浏览

git - 如何跨 2 个服务器同步 Git 存储库

我正在寻找一种在 (2) 台服务器之间自动同步 Git 存储库的方法,以便它们可以从第三点互换。

情况如下:我们在所有项目中大量使用 git,并且一些 Repositories 的大小增长得相当快。目前我们有一个中央服务器,每个人都在向/从这个服务器推/拉。然而,这一切都通过互联网连接,因此不是最快的方式。

想法:在办公室中放置另一台服务器,并在那里拥有所有 git 存储库以供办公室使用。该服务器需要与在线服务器同步。充其量,用户甚至不会通过一些 dns 调整知道他们使用的是哪一个,因此当连接到那里的网络时,在线服务器存储库的地址会解析为办公室内的存储库。

有没有人已经在做类似的事情了?或者有没有更简单的方法来完成目标。

0 投票
2 回答
890 浏览

android - 安卓模拟器时间同步

有没有办法以毫秒精度同步模拟器时间和系统时间?所以调用System.currentTimeMillis()将与gettimeofday()C 中的调用同时返回?

0 投票
1 回答
298 浏览

c# - C# 与屏幕更新同步

我有以下问题:我的应用程序进行了屏幕更新,之后应该制作新视图的屏幕截图。
代码如下:

屏幕更新在“OnPropertyChanged("Screen")”中完成,屏幕截图在“History.ChangeHistory(ADD_ITEM)”中进行。
调用“屏幕”设置器的方法遵循所有相同的方案:

这就是问题所在:屏幕截图是在屏幕更新之前制作的,尽管执行顺序说明了其他内容。

为了自己解决问题,我尝试了几件事:
在 ADD_ITEM 中忙等待 在 ADD_ITEM 中
按计时器
等待 通过 BeginInvoke() 和 EndInvoke() 等待 PropertyChangedEvent 的异步线程的
使用 System.Windows.Forms.Application.DoEvents() 的使用

所有尝试都有相同的结果:屏幕截图是在屏幕更新之前完成的。在尝试使用计时器时,我发现在执行 ADD_ITEM后屏幕会更新。所以我建议编译器做一些隐式线程,我不知道如何修复/防止它。

谢谢你的帮助。

0 投票
2 回答
295 浏览

python - Python线程同步

我有 3 个任务:t1、t2 和 t3。我想在两个并行线程中运行 t1 和 t2。我想在运行 t3 之前等待 t1 和 t2 执行结束。

t1 =========> |
t2 ====> |
t3........|=======>
------------------ -------------------------------------------------------(时间)-->

我有一些关于线程同步的基础,但我不知道如何处理这种情况。python库中是否有任何内置解决方案我必须编写自己的(基于信号量的?)解决方案?

0 投票
3 回答
677 浏览

c - 增量同步原语

我是一个学习线程的初学者,我有一个作业来解决 os161 的互斥问题,通过启动几个增加一个公共计数器的线程来从 0 计数到 10000。我不知道如何使用同步原语来改进它,请帮忙。