关于避免共享的设计模式

比如Immutabily模式,就是要注意对象的不可变性,比如使用StringBuffer ,其就是不具有不可变性的,如果使用其来进行保证不可变性,必然会导致失败

CopyOnWirite 注意其在书写时候的性能低下,避免进行直接的复制

ThreadLocal模式,使用ThreadLocal传递信息的时候,注意是无法在异步之中传递信息的,如果有异步操作的话,注意上下文是无法跨线程共享的

Guarded Suspension模式和Balking模式都可以简单的理解为 多线程的if 

但是Guarded Suspension使用是基于了管程,但要记住也只是用管程来进行加锁和解锁操作,不能使用Sleep的方式进行实现

关于分工模式的三种实现, Thread-Per-Message模式 Worker Thread模式 生产者-消费者模式 

Thread-Per-Message模式 注意是否存在线程的频繁创建及销毁,不然容易导致OOM

Work-Thread 模式的实现,注意线程死锁问题,如果一个线程池中存在多个问题,而多个线程具有彼此的依赖关系,那么可以能导致死锁的出现

在生产者-消费者的实现中,需要注意的是如何的灵活的实现生产者-消费者模式

如何优雅的停止多线程,可以提供一个实现方式,就是提供一个毒丸,帮线程体面,就是当线程检测到这个毒丸的时候,自己直接将标识味设置为中止,进行终结自己

发表评论

邮箱地址不会被公开。 必填项已用*标注