黑马程序员技术交流社区

标题: 线程中的一些笔记 [打印本页]

作者: zhousuo28    时间: 2015-5-29 21:26
标题: 线程中的一些笔记
IllegalMonitorStateException 抛出一个异常
   出现的原因:两个方法导致 wait  notify 线程等待,唤醒单个线程
  方法的使用,必须依赖对象锁,在没有锁的情况下,不允许使用等待与唤醒方法
wait notify 等待和唤醒功能,都是拥有锁的线程
使用的同步代码块用的锁是 Student 对象s ,无论生产线程还是消费线程,锁都是对象s
持有对象s这把锁上的等待和唤醒


  多线程操作的方法中、等待wait和唤醒方法notify为什么没有出现在Thread类中
  而出现在了Object类中?
保证线程数据安全,使用同步锁,锁对象是任意对象,方法等待与唤醒必须有锁的支持,
方法必须定义在Object类中,JAVA中的所有对象均以有此方法

   线程操作方法中,sleep 和 wait 有什么区别
   sleep方法是Thread类的静态方法
   wait方法是Object类的非静态方法
   
   sleep方法,到时间自己醒来,继续执行 ,
   wait方法,等待其他线程唤醒后才执行 ,
        
   sleep 不会释放锁
   wait  释放锁,被唤醒后,从新获取锁,才执行




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2