问题标签 [concurrent-programming]

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 投票
4 回答
2547 浏览

c# - .Net BlockingCollection.Take(2) :一次安全地删除两个项目

在做了一些研究之后,我求助于有关如何有效地从并发集合中删除两个项目的任何反馈。我的情况涉及通过 UDP 传入的消息,这些消息当前被放入 BlockingCollection。一旦集合中有两个用户,我需要安全地取两个用户并处理它们。我见过几种不同的技术,包括下面列出的一些想法。我当前的实现如下,但我认为有一种更简洁的方法可以做到这一点,同时确保用户以两个为一组进行处理。这是这种情况下的唯一限制。

当前实施:

我想做的是这样的事情,但我目前无法在生产环境中测试它以确保完整性。

或者更好:

然后在某处实现:

问题是我不确定我能否保证在条件(Count > 1)和 Take(2) 之间,我确保 UserQueue 至少有两个项目要处理?传入的 UDP 消息是并行处理的,因此我需要一种方法来安全地将项目从阻塞/并发集合中以两个成对的方式拉出。

有没有更好/更安全的方法来做到这一点?

修改后的评论: 这个问题的目的实际上只是为了实现一种稳定/线程安全的方法来处理 .Net 4.0 中并发集合中的项目。它不必很漂亮,它只需要在并行环境中以无序的二对二的形式处理项目的任务中保持稳定。

0 投票
7 回答
50588 浏览

java - 如何让 2 个 JVM 相互通信

我有以下情况:

我有 2 个 JVM 进程(实际上是 2 个java单独运行的进程,而不是 2 个线程)在本地机器上运行。我们称它们ProcessAProcessB.

我希望他们相互交流(交换数据)(例如ProcessA发送消息ProcessB做某事)。

现在,我通过编写一个临时文件来解决这个问题,这些过程会定期扫描这个文件以获取消息。我认为这个解决方案不是很好。

什么是实现我想要的更好的选择?

0 投票
2 回答
146 浏览

java - 为什么不把工作放在这里?

另外为什么异常包含null?这是来自http://www.cs.rice.edu/~wns1/papers/2006-PPoPP-SQ.pdf清单 3的实现

我得到输出

为什么我会得到空值?

0 投票
1 回答
288 浏览

.net - 枚举 ConcurentDictionary

如果我在多线程访问方法中使用 ConcurentDictionary dic,我可以确定在这样的构造中:

subscriptions是不是ConcurrentDictionary<string, ConcurrentDictionary<long, Subscription>>通过几种方法运行时都不会改变,所以它会被线程保存?或者我应该像这样使用锁:

让它正常工作?

0 投票
4 回答
2372 浏览

java - 在java中调用带有超时的阻塞方法调用

我想在java中调用一个由于某种原因而阻塞的方法。我想等待该方法 X 分钟,然后我想停止该方法。

我在 StackOverflow 上阅读了一个解决方案,它给了我第一个快速入门。我在这里写:-

但现在我的问题是,我的函数可以抛出一些异常,我必须捕获并相应地执行一些任务。因此,如果在代码中函数 blockingMethod() 引发了一些异常,我如何在 Outer 类中捕获它们?

0 投票
1 回答
834 浏览

java - 在 Java 中启动/暂停/恢复方法

可能重复:
开始/暂停/恢复/暂停……其他类调用的方法

我想实现一个 Anytime k-NN 分类器,但我找不到在特定时间内调用“classify(...)”方法的方法,暂停它,在方法暂停之前获取可用结果,恢复特定时间量的方法,暂停它,在方法暂停之前获取可用结果,等等......

提前致谢!

0 投票
1 回答
230 浏览

java - Start/Sus​​pend/Resume/Suspend ... 其他类调用的方法

我想实现一个 Anytime k-NN 分类器,但我找不到在特定时间内调用“classify(...)”方法的方法,暂停它,在方法暂停之前获取可用结果,恢复特定时间量的方法,暂停它,在方法暂停之前获取可用结果,等等......我使用数据结构来获取近似结果。当算法遍历数据结构时,它最终会遇到实际的训练数据向量。

我想通过以下方式从主方法调用“分类(..)”方法:

  • 启动方法“分类(..)”
  • 为“class_label”分配初始值时暂停方法“classify(..)”。
  • 获取初始标签
  • 继续执行“分类(..)”方法 X 时间
  • 暂停方法“分类(..)”
  • 获取新的“class_label”
  • 恢复方法“分类(..)”X 时间量等......

提前致谢!

0 投票
2 回答
2123 浏览

node.js - 哪个 Node.js 并发 Web 服务器在 Heroku 上最好?

我刚刚了解了 Heroku,并且非常兴奋地对其进行测试。我很快用 Node.js 语言组装了他们的演示并偶然发现了一个问题。在本地运行应用程序时,apache 基准测试打印大约 3500 个请求/秒,但当它在云上下降到 10 个请求/秒并且不会根据网络延迟增加或降低时。我不敢相信这是他们要求每小时 5 美分的性能,并且高度怀疑我的应用程序不是多线程的。

这是我的 code.js:http ://pastebin.com/hyM47Ue7

我需要应用什么配置才能让它在 Heroku 上“运行”(更快)?或者我可以使用哪些其他的 node.js 网络服务器?

我感谢关于这个主题的每一个答案。

0 投票
2 回答
105 浏览

ios - iOS 线程违规检测?

在 iOS 上,我想知道是否有任何类似于 NSZombies 标志的东西可以设置为在需要主线程时从后台线程调用 API 时检测/引发。

对于块,似乎很容易陷入这样一种情况,即人们要么做出错误的假设,要么错误地判断哪个线程正在做什么。可以检测何时从错误线程进行调用的调试标志对于查找这些情况非常有用。

我主要关心的是Apple的框架(Cocoa Touch)。

提交了错误报告,#12180446。

0 投票
3 回答
7059 浏览

java - LinkedBlockingQueue 和 ConcurrentLinkedQueue 有什么区别?

我已经阅读了博客,但我不确定他的结论是否正确:

http://www.javacodegeeks.com/2010/09/java-best-practices-queue-battle-and.html#ixzz1seaiSLwp

他说:从提供的性能结果可以看出,LinkedBlockingQueue 实现了最佳组合(添加和删除元素)性能结果,应该是您实施生产者 - 消费者方案的第一选择。

我想知道,如果我不在我的代码中使用锁定不是更快吗?

那么为什么 LinkedBlockingQueue 比无锁队列(ConcurrentLinkedQueue)快呢?

谢谢 !