关于避免共享的设计模式
比如Immutabily模式,就是要注意对象的不可变性,比如使用StringBuffer ,其就是不具有不可变性的,如果使用其来进行保证不可变性,必然会导致失败
CopyOnWirite 注意其在书写时候的性能低下,避免进行直接的复制
ThreadLocal模式,使用ThreadLocal传递信息的时候,注意是无法在异步之中传递信息的,如果有异步操作的话,注意上下文是无法跨线程共享的
Guarded Suspension模式和Balking模式都可以简单的理解为 多线程的if
但是Guarded Suspension使用是基于了管程,但要记住也只是用管程来进行加锁和解锁操作,不能使用Sleep的方式进行实现
关于分工模式的三种实现, Thread-Per-Message模式 Worker Thread模式 生产者-消费者模式
Thread-Per-Message模式 注意是否存在线程的频繁创建及销毁,不然容易导致OOM
Work-Thread 模式的实现,注意线程死锁问题,如果一个线程池中存在多个问题,而多个线程具有彼此的依赖关系,那么可以能导致死锁的出现
在生产者-消费者的实现中,需要注意的是如何的灵活的实现生产者-消费者模式
如何优雅的停止多线程,可以提供一个实现方式,就是提供一个毒丸,帮线程体面,就是当线程检测到这个毒丸的时候,自己直接将标识味设置为中止,进行终结自己