文档章节

suspend()、resume()、stop()为啥过期,wait(),sleep()、join()、yield()

Dylan1009
 Dylan1009
发布于 2017/02/12 14:35
字数 375
阅读 27
收藏 0

        suspend()、resume()、stop()分别对应线程的暂停、恢复、停止。但是这些API是过期的,也就是不建议使用的API。

        suspend()在调用之后,线程不会释放自己已经占有了的资源(比如锁),而是占有着资源进入到睡眠状态,这样容易应发死锁问题。

        stop()方法在终结一个现车时不会保证线程的所有资源都正常释放,通常是没有给予线程完成资源释放工作的机会,因此导致程序可能工作在不确定的状态下。

        暂停和恢复操作可以用等待/通知机制来代替。

    Object.wait() 和Thread.sleep()方法都可以让线程等待若干时间,除了wait()可以被唤醒外,另一个主要的区别是wait()方法会释放目标对象的锁,而Thread.sleep()方法不会释放任何资源。

    join()的本质是让调用线程wait()在当前线程对象实例上,即在A线程中调用了B线程的join()方法,则A线程等待B线程执行完了后,才继续执行。

    Thread.yield()为静态方法,他的定义如下

public static native void yield();

    一旦执行,它会使当前线程让出CPU,但是注意,让出CPU并不表示当前线程不执行了。当前线程在让出CPU后,还会参与争夺CPU资源,但是能否争取得到就不一定了。

© 著作权归作者所有

Dylan1009
粉丝 5
博文 195
码字总数 131086
作品 0
广州
程序员
私信 提问
面试:线程暂停的几种方式

(1)概述:线程的挂起操作实质上就是使线程进入“非可执行”状态下,在这个状态下CPU不会分给线程时间片,进入这个状态可以用来暂停一个线程的运行。在线程挂起后,可以通过重新唤醒线程来使...

疯狂的兔子
2016/05/19
230
0
线程的生命周期和状态控制

一、线程的生命周期 线程状态转换图: 其中Thread.join()调用的是Object.wait()方法实现的,意思是让当前线程等待。是当前调用thread1.join()的线程等待,而不是让thread1这个线程等待。 1、...

小菜鸡1
2016/08/05
461
0
学习笔记1:java多线程机制之线程概念

由于种种需求,今天开始由浅入深的学习java的多线程机制,而java语言的一大特性点就是内置对多线程的支持。 以下内容出自: http://blog.csdn.net/jiangwei0910410003/article/details/1996...

牧羊人Berg
2015/10/15
105
0
Java 复习 —— 多线程中断

1、interrupt中断线程 1、interrupt 会给wait池中的线程抛出异常,这个时候该线程会被唤醒,但是同样还要继续竞争锁资源,才能继续运行! 2、interrupt 会给正在sleep的线程抛出异常,但是不...

learn_more
2015/09/09
72
0
《Java多线程编程核心技术》读书笔记

《Java多线程编程核心技术》读书笔记。 第一章 Java多线程技能 使用Java多线程两种方式。 继承Thread类与实现Runnable接口。 线程的开始、中止、暂停、恢复、停止。 、、、、 线程的、、优先...

刀狂剑痴
2016/05/02
517
0

没有更多内容

加载失败,请刷新页面

加载更多

PCB设计-Allegro软件入门系列-铺铜操作(下)

铺铜是PCB很常见的操作,PCB的敷铜一般都是覆地铜,增大地线面积,有利于地线阻抗降低,使电源和信号传输稳定,在高频的信号线附近敷铜,可大大减少电磁辐射干扰,起屏蔽作用。 本讲讲解啊一...

demyar
28分钟前
4
0
如何通过WASI SDK 在Linux上编译ZXing C++

Mozilla在今年三月份的时候公布了WASI。WASI的目标就是让WebAssembly在任何地方都可以运行,而不仅仅像现在这样只能运行在Node.js和Web浏览器中。WASI目前依然处于初级阶段,这篇文章分享下如...

yushulx
30分钟前
3
0
.Net界面开发神器—DevExpress官方汉化包免费下载!还在等什么?

点击获取DevExpress v19.1.7新版试用下载 DevExpress Localization Service允许您创建一组自定义的附属程序集,要将语言包添加到程序集中,请查看本文中为大家列出的对应版本的汉化包,下载并...

FILA6666
30分钟前
4
0
php生成二维码

        header('Content-Type: image/png');        //清除缓冲区,防止之前面不知道的情况下被加头部信息导致不显示图片内容        ob_clean();        $...

横着走的螃蟹
35分钟前
3
0
伪类和伪元素

伪类和伪元素 伪类和伪元素,对于绝大多数同学来说,都是耳熟能详的名字,但确实又有很多人搞不清楚它们之间的区别,以致于混淆概念。而当概念都混淆的时候,也往往意味着你不会经常使用它,...

不负好时光
38分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部