首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Java札记-Java基础(多线程)

2013-12-05 
Java笔记-Java基础(多线程)?wait与notify方法都是定义在Object类中,而且是final的,因此会被所有Java类所继

Java笔记-Java基础(多线程)

?

wait与notify方法都是定义在Object类中,而且是final的,因此会被所有Java类所继承,并且无法重写

这两个方法要求在调用时线程应该已经获得了对象的锁,因此对这两个方法的调用需要放在synchronized方法或块当中。

当线程调用了wait方法时,会释放掉对象的锁

当另外的线程调用了notify,notifyAll方法时,会唤醒处于wait状态状态的线程

?

生产者,消费者

哲学家就餐问题

死锁

?

*wait必须在synchronized代码块中调用,调用wait方法后会释放锁

另外线程调用notify或notifyAll方法会唤醒wait的线程,等到再次获得锁的时候恢复运行

*使用while进行条件 和 使用if进行条件判断比较

?

2)sleep也是会导致线程暂停的方法

定义在Thread类中

?

*sleep方法会导致线程睡眠指定的毫秒数

线程在睡眠的过程中是不会释放掉对象的锁的

?

*调用wait方法后,如果不调用nofity,notifyAll,将永远不会被唤醒

sleep在睡眠指定时间后,会自动醒来

以上两点是sleep和wait的区别

?

10.线程组

所有线程都隶属于一个线程组。可以是一个默认的线程组,也可以是一个创建线程时明确指定的组。

?

*在创建之初,线程被限制在一个组里,而且不可能改变到一个不同的组

*若创建多个线程而不指定一个组,他们会与创建它的线程属于同一个组

?

?

?

?

?

?

热点排行