十、多线程控制类(1)
前言:   前面我们介绍了要想保证多线程变现过程中的安全问题,我们就要保证在读线程编写过程中保证多线程的三大特性,那么java为了保证多线程的三大特性引入了很多线程控制机制,下面就来介绍场用的几种。 一、ThreadLocal:    ThreadLocal线程本地变量,它可以为每一个线程刚保存一份线程内变量的副本,可以保证线程线程之间的变量时互不影响的,且是原子类可以保证变量的原子操作,当某些数据是以线程为作用域且不同线程具有不同的数据副本的时候,就可以考虑采用ThreadLocal。   ThreadLocal常用的方法:     initialValue:创建副本方发: (注:在jdk1.8引入了lambda构造方式,方法变成了withlnitial)     get:获取副本方法:     set:设置副本方法:   在这里我我们来模拟一下两个用户之间的转账,来看一下ThreadLocal的实现: public class ThreadLocalDemo { //创建一个银行账户:账户有存款,可以进行存钱取钱操作。 static class Bank{ private ThreadLocal<Integer> threadLocal = ThreadLocal.withInitial(() -> { return 0; //假设我们每个人的账户初始余额都是零 }); /