ThreadLocal 类似于 hashMap
k值为当前线程名称
ThreadLocal.get() //获取值
ThreadLoacl.set() //设置值
当多次设置 值时 后面会替换前面的值
ThreadLoal 用来存储当前线程中的数据
因此不同线程的数据是隔离的 因此可以实现线程隔离
当使用线程同步锁的时候
synchronisation 使用类作为锁时
obj.wait 等待 等待 obj.notify 唤醒
ReentrantLock lock = new ReentrantLock(); Condition condition = lock.newCondition(); condition.signalAll(); //唤醒全部 condition.await(); //等待