Tag: 并发

什么是数据库事务?

有人可以提供一个简单的(但不是简单的)交易的解释,适用于计算(即使从维基百科复制)?

Actors与线程相比如何工作?

有什么好的和简短的解释演员如何工作相比线程? 一个线程不能被视为一个演员,并发送消息到其他线程? 我看到有些不同,但对我来说不是很清楚。 我可以通过不同的线程使用任何语言的Actor吗?

LinkedBlockingQueue vs ConcurrentLinkedQueue

我的问题与之前提到的这个问题有关 。 在我使用生产者和消费者线程之间的通信队列的情况下,人们通常会推荐使用LinkedBlockingQueue或ConcurrentLinkedQueue ? 使用其中一个的优点/缺点是什么? 我从APIangular度看到的主要区别是LinkedBlockingQueue可以有select地绑定。

Java中的监视器是什么?

在Java中的并发编程中提到的监视器是什么? 当我读到“每个物体都与监视器相关联”时,这意味着什么? 这是一个特殊的对象吗?

同步对SimpleDateFormat的访问

SimpleDateFormat的javadoc声明SimpleDateFormat不同步。 “date格式不同步,build议为每个线程创build单独的格式实例,如果多个线程同时访问一个格式,则必须在外部进行同步。 但在multithreading环境中使用SimpleDateFormat实例的最佳方法是什么? 以下是我想到的一些选项,过去我使用了选项1和2,但是我很好奇是否有更好的select,或者哪些选项可以提供最佳的性能和并发性。 选项1:在需要时创build本地实例 public String formatDate(Date d) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); return sdf.format(d); } 选项2:创buildSimpleDateFormat的一个实例作为类variables,但同步对它的访问。 private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); public String formatDate(Date d) { synchronized(sdf) { return sdf.format(d); } } 选项3:创build一个ThreadLocal来为每个线程存储一个不同的SimpleDateFormat实例。 private ThreadLocal<SimpleDateFormat> tl = new ThreadLocal<SimpleDateFormat>(); public String formatDate(Date d) { SimpleDateFormat sdf = tl.get(); if(sdf == null) […]

Node.js或Erlang

当涉及到它可以处理的并发级别时,我真的很喜欢这些工具。 Erlang看起来更稳定的解决scheme,但需要更多的学习和大量的function语言范例。 看起来Erlang在多核CPU方面更好(修复了我的错误)。 但是我应该select哪一个? 从短期/长期来看,哪一个更好? 我的目标是学习一个工具,它使得我的web项目在高负载下的扩展比传统语言更容易。

如何知道什么是不是线程安全的ruby?

从Rails 4开始 ,所有的东西都必须在线程环境下默认运行。 这意味着我们所写的所有代码,我们所使用的所有gem都必须是threadsafe 所以,我对此有几个问题: ruby / rails中不是线程安全的? Vs什么是ruby / rails中的线程安全? 是否有一个已知是线程安全的gem列表,反之亦然? 有没有线程安全的代码常见模式列表@result ||= some_method ? ruby中的核心数据结构如Hash等线程安全吗? 在MRI上, GVL / GIL只有一个ruby线可以一次运行,除了IO之外,线程安全变更对我们有什么影响?

什么是记忆围栏?

什么是使用明确的内存围栏?

AtomicInteger lazySet与设置

AtomicInteger的lazySet和set方法有什么区别? 文档没有太多关于lazySet : 最终设置为给定的值。 似乎储值不会立即设定为所需的值,而是预定将来设定一段时间。 但是,这种方法的实际用途是什么? 任何例子?

什么是僵局?

在编写multithreading应用程序时,遇到的最常见问题之一是死锁。 我对社区的问题是: 什么是僵局? 你如何检测他们? 你处理他们? 最后,你如何防止它们发生?