34得票7回答
互斥锁是否保证获取的顺序?解锁线程在其他线程还在等待时再次获取它。

最近,我们的一位同事在使用C++应用程序的两个线程时遇到了一个问题,归结为以下事件序列: 线程A拥有一个互斥锁。 当线程A持有该互斥锁时,线程B尝试锁定它。由于锁被持有,线程B被挂起。 线程A完成持有互斥锁的工作,从而释放互斥锁。 很快之后,线程A需要触及由互斥锁保护的资源,因此再次锁...

15得票2回答
Java.util.Random 在并发使用时的竞争问题

Oracle Java文档表示: java.util.Random的实例是线程安全的。然而,在跨线程使用同一java.util.Random实例的并发情况下,可能会遇到争用和随之而来的性能不佳。在多线程设计中,考虑改用ThreadLocalRandom。 性能不佳的原因是什么?

14得票2回答
多个PhantomJS实例挂起

我在Ubuntu 14上运行多个PhantomJS实例时遇到了问题。几分钟后,这些进程就会变得无响应。 简要背景: 使用PhantomJS 2.0渲染网页,并最终使用Wkhtmltopdf保存为PDF。 PhantomJS只负责加载页面、发出ajax请求,并在服务器端保存PDF后等待响应,它...

8得票1回答
fork()后相同的文件描述符

我正在尝试理解在调用fork()后复制文件描述符的含义以及它可能对争用产生的影响。 在《Linux编程接口》第24.2.1节(p517)中提到: 当执行fork()时,子进程会收到父进程所有文件描述符的副本。这些副本是通过dup()方式创建的,这意味着父进程和子进程中对应的文件描述符都指向...