并发编程设计模式之保险箱设计
Posted zj-xu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了并发编程设计模式之保险箱设计相关的知识,希望对你有一定的参考价值。
多线程设计上下文模式
上下文模式使用threadlocal进行设计
threadlocal在线程间是隔离的,不共享,用于存储线程的变量
上下文就是在程序的执行过程中,上下文主要就是想传人传出的只都存进去,从而用户就可以忽略程序内部需要传输的值
上下文的多线程设计,可以使用保险箱设计:
这是执行查询和连个值得操作,需要每个线程都有自己的一份上下文用于串联这个查询
这是下一步串联id的query
这是第二个查询
这是上下文的设计:使用了holder设计单例模式,因为context存放到threadlocal中,所以每开启一个线程,就有自己的一份context,所以就避免了context的线程安全,
单例模式保证了每个线程只有一份context
总结:以上使用context串联程序间的数据传输,多线程的情况下,使用threadlocal保证了线程安全,使用单例模式保证了每个线程只创建一份context
以上是关于并发编程设计模式之保险箱设计的主要内容,如果未能解决你的问题,请参考以下文章
JUC并发编程 多线程设计模式 -- 同步模式之 Balking
JUC并发编程 多线程设计模式 -- 同步模式之顺序控制( 固定运行顺序 & 交替输出)