随笔分类 - 多线程
摘要:1、Lock对象也可以实现同步和线程间的通信,Lock对象是一个接口,其实现类有ReentrantLock。ReentrantLock也可以实现线程间的同步互斥,并扩展了其他的功能。wait()/notify()通知等待的线程时是随机的,用Condition相对灵活很多,可以实现选择性通知。Sync
阅读全文
摘要:1、当一个线程进入一个对象的一个synchronized方法后,其他线程可以进入此对象的非同步方法,不可进入此对象此同步方法,也不可进入此对象其他同步方法。同步监视器的意思是:线程开始执行同步代码块或者同步方法时,必须先要获得对同步监视器的锁定。任何时刻只能有一个线程获得对同步监视器的锁定,sync
阅读全文
摘要:1、sleep()和wait()的区别: 1)前者是Thread类中静态方法,后者是Object中的方法 2)前者不释放对象锁,在指定的时间后恢复。后者释放对象锁,并进入等待池中,只有其他线程调用该同步监视器的notify或notifyAll此线程才恢复到准备状态 3)前者可以在任何地方使用,并会抛
阅读全文
摘要:ThreadLocal是一个数据结构,有点像HashMap,可以保存key-value键值对,但是一个ThreadLocal只能保存一个,并且各个线程的数据互不干扰。ThreadLocal为变量在每个线程中都创建一个副本。 在线程1中初始化了一个ThreadLocal对象localName,并通过s
阅读全文