可变VS不可变的并行应用程序应用程序、VS

2023-09-03 11:44:44 作者:我想给你个大大的拥抱,

在应用程序我写,我需要写大量的基本类型,这将很可能是不可改变的。但我想知道类型的并行应用程序,以不变的人如何可变的比较。

In the application I am writing, I need to write lots of base types, which will most likely be immutable. But I am wondering how mutable types compare in parallel applications to immutable ones.

您可以使用锁与可变对象,对不对?它是如何比较与不变类型的并行应用程序中使用的其他技术?

You can use locks with mutable objects, right? How does it compare to other techniques used with immutable types in parallel applications?

您至少远离使用锁与稳定的类型,对吧?

You are at least away from using locks with immutable types, right?

推荐答案

类型

使用不变类型尽可能。 使用线程安全的集合,而不是明确的锁定尽可能多地。 在仅使用可变类型时,你有没有其他合理的选择。

主题

使用线程尽可能池。 在当前线程池是不可能的。使用无限循环 在手动启动和停止线作为最后的手段。

如果你必须使用显式锁,透了记录他们。特别是当它涉及到您锁定对象的顺序。如果你知道富对象始终锁定美孚前酒吧对象和(密钥100)始终处于锁定状态符前(键= 200),你不会得到死锁。

If you do have to use explicit locks, document them throughly. Especially when it comes to the order in which you lock objects. If you know that Foo objects are always locked before Bar objects and that Foo(key 100) is always locked before Foo(key = 200), you won't get deadlocks.