132得票8回答
Java中是否有互斥锁(Mutex)?

Java中是否有Mutex对象或创建它的方法?我之所以问是因为初始化为1个许可的Semaphore对象对我没有帮助。考虑以下情况:try { semaphore.acquire(); //do stuff semaphore.release(); } catch (Excep...

93得票4回答
Java 8:并行FOR循环

我听说Java 8提供了很多关于并发计算的工具。因此,我想知道并行化给定的for循环的最简单方法是什么?public static void main(String[] args) { Set<Server> servers = getServers(); Map&...

81得票7回答
如何让两个JVM相互通信

我有如下情况: 我有2个JVM进程(实际上是2个独立运行的Java进程,而不是2个线程)在本地机器上运行。我们称它们为ProcessA和ProcessB。 我想让它们相互通信(交换数据),例如ProcessA向ProcessB发送消息以执行某些操作。 现在,我通过编写临时文件并使这些进程...

46得票2回答
这是在C#中迭代ConcurrentDictionary的正确方式吗?

我只是用这段代码作为一个例子。假设我有以下的Person类。using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace dictionaryDisplay { ...

39得票5回答
Java: 引用逃逸

阅读到以下代码是“不安全的构造”的示例,因为它允许此引用逃逸。我无法理解'this'如何逃逸。我对Java世界非常陌生。有人可以帮助我理解吗。public class ThisEscape { public ThisEscape(EventSource source) { ...

32得票15回答
如何更好地解释“死锁”?

我很难用简单的话来解释线程中的“死锁”,所以请帮忙。有没有最好的示例可以说明“死锁”(比如在Java中),它是如何按步骤发生的,如何预防呢?但不要深入细节。我知道这就像是在要求两件相反的事情,但还是请教一下。如果你有任何并发编程的经验 —— 那就太好了!

27得票2回答
如何在Java中停止Executor ThreadPool的执行?

我正在使用Java中的Executors来并发地运行多个线程。我有一组Runnable对象,将其分配给Executors。Executor已经正常工作,一切都很好。但在池中执行所有任务后,Java程序没有终止,我认为Executor需要一些时间来终止线程,请帮助我减少Executor在执行完所...

20得票1回答
Java阻塞问题:为什么JVM会在许多不同的类/方法中阻塞线程?

更新:看起来这是一个内存问题。一个3.8 GB的Hprof文件表明,当这个“阻塞”发生时,JVM正在转储它的堆。我们的运营团队发现站点没有响应,获取了堆栈跟踪,然后关闭了实例。我认为,在堆转储完成之前,他们关闭了站点。日志中没有错误/异常/问题的记录——可能是因为在生成错误消息之前JVM被杀死...

19得票3回答
C/C++和C#/Java中使用volatile的区别是什么?

我在许多参考资料中发现,C/C++中的volatile是较为弱的,在多处理器并发环境下可能会出现问题,但它(volatile)可以被用作C#/Java中不同CPU之间的通信机制。看起来这个关键字在C#/Java中比在C/C++中更严格,但它们之间有什么区别/影响呢? 这里是C/C++中vol...