文史百科 线程中sleep和wait的区别

Posted 线程

篇首语:坚志而勇为,谓之刚。刚,生人之德也。本文由小常识网(cha138.com)小编为大家整理,主要介绍了文史百科 线程中sleep和wait的区别相关的知识,希望对你有一定的参考价值。

Java中的多线程是一种抢占式的机制 而不是分时机制。

抢占式机制指的是有多个线程处于可运行状态,但是只有一个线程在运行。

共同点:

1. 他们都是在多线程的环境下,都可以在程序的调用处阻塞指定的毫秒数,并返回。

2. wait和sleep都可以通过interrupt方法打断线程的暂停状态,从而使线程立刻抛出InterruptedException。

如果线程A希望立即结束线程B,则可以对线程B对应的Thread实例调用interrupt方法。

如果此刻线程B正在wait/sleep /join,则线程B会立刻抛出InterruptedException,在catch 中直接return即可安全地结束线程

需要注意的是,InterruptedException是线程自己从内部抛出的,并不是interrupt方法抛出的。

对某一线程调用 interrupt时,如果该线程正在执行普通的代码,那么该线程根本就不会抛出InterruptedException。

但是,一旦该线程进入到 wait/sleep/join后,就会立刻抛出InterruptedException 。

不同点:

1. Thread类的方法:sleep,yield等

Object的方法:wait和notify等

2. 每个对象都有一个锁来控制同步访问。

Synchronized关键字可以和对象的锁交互,来实现线程的同步。

sleep方法没有释放锁,而wait方法释放了锁,使得其他线程可以使用同步控制块或者方法。

3. wait,notify和notifyAll只能在同步控制方法或者同步控制块里面使用,而sleep可以在任何地方使用

4. sleep必须捕获异常,而wait,notify和notifyAll不需要捕获异常 线程的调度

线程调度器按线程的优先级高低选择高优先级线程(进入运行中状态)执行,同时线程调度是抢先式调度,即如果在当前线程执行过程中,一个更高优先级的线程进入可运行状态,则这个线程立即被调度执行。

抢先式调度又分为:时间片方式和独占方式。

在时间片方式下,当前活动线程执行完当前时间片后,如果有其他处于就绪状态的相同优先级的线程,系统会将执行权交给其他就绪态的同优先级线程;当前活动线程转入等待执行队列,等待下一个时间片的调度。

在独占方式下,当前活动线程一旦获得执行权,将一直执行下去,直到执行完毕或由于某种原因主动放弃CPU,或者是有一高优先级的线程处于就绪状态。

相关参考

文史百科 线程和进程的区别怎么产生线程

进程是指运行中的应用程序,每一个进程都有自己独立的内存空间。一个应用程序可以同时启动多个进程。例如对于IE浏览器程序,每打开一个IE浏览器窗口,就启动了一个新的进程。同样,每次执行JDK的java.e

文史百科 线程和进程的区别怎么产生线程

进程是指运行中的应用程序,每一个进程都有自己独立的内存空间。一个应用程序可以同时启动多个进程。例如对于IE浏览器程序,每打开一个IE浏览器窗口,就启动了一个新的进程。同样,每次执行JDK的java.e

文史百科 线程和进程的区别怎么产生线程

进程是指运行中的应用程序,每一个进程都有自己独立的内存空间。一个应用程序可以同时启动多个进程。例如对于IE浏览器程序,每打开一个IE浏览器窗口,就启动了一个新的进程。同样,每次执行JDK的java.e

文史百科 世界和全球有什么区别

“世界”是全部已知与未知事物的总称;“全球”是指整个地球。我们在生活中常见的一些词语中也可以看出两个词的区别:“世界未解之谜”、“互联网全球化”、“动物世界”、“全球首发”等等。“世界”可以指一种分类

文史百科 古代的“县令”和“知县”有什么区别

相信在绝大多数朋友的认知中,古代的“县令”和“知县”都是一个意思,都是一县之长的称呼。造成这样的误解,大多是受古装影视剧的影响,影视剧中一会是称呼“知县”,一会又称呼“县令”,甚至将两者混为一谈。对于

文史百科 熏肉和腊肉的区别?

熏肉和腊肉的区别:制作方法:腊肉是指肉经腌制后再经过烘烤(或日光下曝晒)的过程所制成的加工品。熏肉是五花肉中加入花椒、茴香、甜面酱等的佐料慢火焖煮而成的。2.营养价值:腊肉中磷、钾、钠的含量十分丰富,

文史百科 熏肉和腊肉的区别?

熏肉和腊肉的区别:制作方法:腊肉是指肉经腌制后再经过烘烤(或日光下曝晒)的过程所制成的加工品。熏肉是五花肉中加入花椒、茴香、甜面酱等的佐料慢火焖煮而成的。2.营养价值:腊肉中磷、钾、钠的含量十分丰富,

文史百科 熏肉和腊肉的区别?

熏肉和腊肉的区别:制作方法:腊肉是指肉经腌制后再经过烘烤(或日光下曝晒)的过程所制成的加工品。熏肉是五花肉中加入花椒、茴香、甜面酱等的佐料慢火焖煮而成的。2.营养价值:腊肉中磷、钾、钠的含量十分丰富,

文史百科 密宗五个教派的简介和区别

1、宁玛派宁玛派为藏传佛教流派之一,由于该派的僧人都戴红色僧帽,所以也被称为红教。在各派中历史最久,形成于公元11世纪,"宁玛"在藏语中的意思是"古"和"旧"。所谓古,是说它的教理是从公元8世纪时传下