03 2022 档案
摘要:1.synchronized是关键字,ReentrantLock是一个类 2.synchronized是自动加锁和解锁的,ReentrantLock是手动的 3.syschronize是JVM层面的锁,ReetrantLock是API层面的锁 4.Sychronize是非公平锁,ReentrantL
阅读全文
摘要:1.每个线程都有一个THreadlocalMap类型的成员变量threadlocals,这个map容器的key就是我们的threadlocal,对应的value就是我们要保存的值 2.当执行set方法的时候,先获取当前线程对象,然后获取当前线程对象对应的ThreadlocalMap对象,并把当前线程
阅读全文
摘要:守护线程:也叫后台线程,为所有非守护线程(用户线程)提供服务的线程。 特点:1.在所有的用户线程都执行完毕后,守护线程会自动关闭; 2.一个线程如果要定义成守护线程,他必须可以随时关闭,尤其是那些重要的线程不能定义成守护线程,比如mysql输入之类的,不能中断 3.线程池中没有守护线程,它会自动把守
阅读全文
摘要:一.sleep()和wait()之间的区别: 1.sleep是Thread的静态本地方法,wait是Object的本地方法; 2.sleep不会释放lock,但wait会释放锁,将线程从锁池转到等待池; 3.sleep不依赖与synchronized,但waIt必须和synchronized配套使用
阅读全文