多线程的设计模式

Ank*_*ani 21 multithreading design-patterns design-principles multitasking

当大型项目由于共享突变而崩溃时,多任务处理似乎是一场灾难.我会说共享资源是由多个线程访问的.调试和跟踪bug的来源以及导致它的原因变得非常困难.它让我问,是否有任何设计模式,可以在设计multithreaded程序时使用?

我非常感谢您对此的看法和意见,如果有人能够提出可以遵循的良好设计实践,以使我们的程序线程安全,那将是一个很大的帮助.

Ibr*_*jar 9

@WYSIWYG链接似乎有很多有用的模式,但我可以给你一些指导方针.多线程程序问题的主要来源是更新操作或并发修改,一些不太常见的问题是饥饿,死锁等,如果我可以说更致命,所以为了避免这些情况你可以:

  • 使用不可变对象模式,如果在创建后无法修改对象,则无法进行不协调的更新,因为我们知道创建操作本身在您的情况下由JVM保证是原子的.
  • 命令查询分离原则:这是从读取它们的代码修改对象的单独代码,因为读取可以同时发生但修改不能.
  • 充分利用您正在使用的语言和库功能,例如并发列表和线程结构,因为它们设计良好且性能良好.
  • 有一本书(虽然是一本旧书)但是对于这样的系统有很好的设计,它被称为Java中的并发编程.

  • 我开始阅读这本书,它非常好,写得很好:http://www.amazon.com/Design-Multithreaded-Software-Entity-Life-Modeling/dp/047087659X (2认同)