11得票1回答
Kotlin的`?.let`是线程安全的吗?

Kotlin的?.let是否线程安全? 假设一个变量a可以在不同的线程中更改。使用a?.let { /* */ }是否线程安全?如果它等价于if (a != null) { block() },那么在if中它不为null,在block中它会变成null的情况是否可能发生?

10得票2回答
在Ruby中实现同步屏障

我想在Ruby中“复制”CUDA的__synchtreads()函数的行为。具体来说,我有一组需要执行一些代码的N个线程,然后所有线程在执行到某一点时互相等待,然后再继续执行其余的业务。例如: x = 0 a = Thread.new do x = 1 syncthreads() ...

10得票2回答
Volatile.Read / Volatile.Write 对于 "double" 类型的变量是原子操作吗?

MSDN指出: 对于其他类型的读写操作,包括long、ulong、double和decimal,以及用户定义的类型,不一定是原子操作。 C# 7.0草案规范 - 变量 - 9.6 变量引用的原子性 Volatile.Write(Double, Double)能作为原子操作吗?如果可以...

9得票3回答
我需要同步一个只被一个线程修改的List吗?

这里有一个类,它有两个线程可以访问一个List。其中一个线程定期用更新后的副本替换列表,另一个线程将列表内容绘制到屏幕上。 public class ThreadSafePainter { private List<String> dataList = new Array...

9得票1回答
考虑到GIL,asyncio如何可能不是线程安全的?

asyncio 文档 中提到: 大多数 asyncio 对象不是线程安全的。只有在访问事件循环外的对象时才需要担心。 能否有人解释一下这句话,或者举个例子说明误用 asyncio 如何导致在线程间共享的对象上进行不同步的写入?我认为 GIL 意味着一次只有一个线程可以运行解释器,因此发...

9得票7回答
如何防止两个应用程序同时执行相同的任务?

如果您的应用程序中有两个线程,而且您不希望它们同时运行某个特定的代码段,您可以在代码周围放置一个锁,像这样: lock (someObject) { // ... some code } 但是如何在不同的进程之间做相同的事情呢?我认为这就是使用“全局互斥锁”的地方,所以我尝试了各...

9得票3回答
相比于有或没有争用的锁,原子/交错变量有多快?

相对于无争议的原子变量(例如 C++ 的 std::atomic<T> 操作),它的速度快/慢多少。 此外,有争议的原子变量相对于无争议的锁会慢多少? 我正在使用的架构是 x86-64。

8得票6回答
在Java中,使用相同对象的多个线程会创建该对象的副本吗?

多个 Java 线程如何处理使用传递给它们的 单个对象引用? 它们会复制对象并使用它,还是使用相同的对象? 欢迎任何技术性的解释。 在线程将数据传递给对象并进入睡眠状态时,我无法理解这个问题。而在一个线程休眠期间,另一个线程使用同一个对象将数据传递给它并休眠。 最后的数据会覆盖对象中的...

8得票2回答
.NET应用程序中的句柄泄露(事件类型)

我有一个用.NET 4.0编写的Windows Forms应用程序。最近,在执行一些测试时,我注意到句柄存在一些问题。下表显示了结果: 如您所见,唯一增加的句柄类型是“Event”。 我的问题是:这个问题可能是由Windows Forms应用程序引起的吗?我的意思是,我没有使用AutoRe...

8得票2回答
在PRAM模型中,CRCW和EREW有什么主要区别?

在PRAM模型中,多个处理器同时执行相同命令来处理不同数据集合。 每个算法有两种读/写模式: 1.并发(并发读和并发写) 2.独占(独占读和独占写) 我发现难以理解的是这两种模式之间到底有何区别,哪一种更有效?