java多线程—Thread.Join()和Thread.Sleep()

java多线程—Thread.Join()和Thread.Sleep()

大家好,又见面了,我是全栈君。

注:
join方法的功能就是使异步执行的线程变成同步执行。也就是说,当调用线程实例的start方法后,这个方法会立即返回,如果在调用start方法后后需要使用一个由这个线程计算得到的值,就必须使用join方法。如果不使用join方法,就不能保证当执行到start方法后面的某条语句时,这个线程一定会执行完。而使用join方法后,直到这个线程退出,程序才会往下执行。

这两天一直在研究Thread的调度,把成果拿出来,大家分享一下!本来昨天想要写这篇文章的,无奈51cto的网站不过,无法写!只有推迟到今天!废话不多说!下面是成果!
   

 thread1.Join()//这样写是告诉大家它不是静态方法
         * 三个重载方法,基本功能相同,都是阻塞掉当前代码运行的线程,只有当thread1线程执行完毕,阻塞掉的线程才重新进入运行状态
         * ①thread1.join(),无参无返回值,如果调用该方法时,thread1终止,则返回,否则,被阻塞的线程就永远阻塞下去
         * ②thread1.join(int) 参数是超时时间(单位ms),返回bool,如果在超时时间内thread1终止,则返回true,同时被阻塞的线程进入运行状态,
         *     否则,返回false,同时被阻塞的线程和thread1都处于运行状态,并且交替执行
         * ③thread1.join(timespan)同②。
         * 
         * 
         *线程中设计join方法的意义(个人理解):实现了线程的顺序执行,而线程的顺序执行就有同步的意义,所以这里也可以看做线程同步的一种方式
         */
        /*thread1.Sleep(time)
           两个重载方法功能相同都是,让当前线程休眠一段时间,时间过后就唤醒,但是唤醒后不一定就重新进行调度,但是sleep一次肯定就要重新进行一次调度
         * sleep的意义就是为了防止优先级高的线程(而又需要花费大量Cpu时间的)长期占有Cpu时间,使得其他的线程出现饿死状态,当然不会真的出现饿死状态
         * 或者是某优先级高的线程不想再未来一段时间内参与cpu竞争也可以调用该方法。
         */
作者:ATually_Miao

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/121263.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java 和 C 代码运行效率的比较(整理)「建议收藏」

    java 和 C 代码运行效率的比较(整理)「建议收藏」最近和朋友无意间讨论起了有关java和C的效率问题,(我是java推介者,他是c语言推介者,他做的是嵌入式)故,想通过网络查询一下,总结一下,两者到底效率如何,其有何差异,原因

    2022年8月4日
    9
  • 八大免费SSL证书-给你的网站免费添加Https安全加密

    八大免费SSL证书-给你的网站免费添加Https安全加密

    2021年10月14日
    42
  • mysql数据库面试题目及答案_数据库面试题2021

    mysql数据库面试题目及答案_数据库面试题2021MySQL数据库面试题(2022版)文章目录一、基础基本概念MySQL有哪些数据库类型?CHAR和VARCHAR区别?数据库设计什么是三大范式?什么是范式和反范式,以及各自优缺点?二、索引索引的几种类型或分类?索引的优缺点?索引设计原则?索引的数据结构?Hash和B+树索引的区别?为何使用B+树而非B树做索引?什么是最左匹配原则?什么是覆盖索引?什么是索引下推?三、存储存储引擎有哪些常见的存储引擎?MyISAM和InnoDB的区别?InnoDB的四大特性?InnoDB为.

    2022年10月8日
    2
  • 创意的课程设计——憨憨钟设计(碾压)

    创意的课程设计——憨憨钟设计(碾压)目录写在前面的话设计的实际演示憨憨钟的主要功能设计的实现过程界面设计模型结构设计元件清单调试异常分析结语写在前面的话大家好,学习之余给大家分享一个这学期设计的课程设计,互相学习借鉴。课程设计,尤其是自定义的课程设计,自盘古开天地以来就困扰着每一位工科男。我,一枚工科男,觉得需要站出来为大家排忧解难了。这学期有自定义的课程设计,所以我就设计了一个很有创意的课程设计,是一个国外开源的设计,结合了国外开源资料和一些大佬的实践经验。设计的实际演示憨憨钟自动写时间的效果:憨憨钟的演示效果1憨憨钟自动画天气

    2022年5月20日
    36
  • C++中类中同时存在继承以及组合时候,构造函数的构造顺序

    C++中类中同时存在继承以及组合时候,构造函数的构造顺序

    2022年2月7日
    30
  • hi3516dv300 sdk_Hi3516DV300

    hi3516dv300 sdk_Hi3516DV300Hi3516DV300编译环境搭建问题及解决1.安装完工具链,提示找不到gcc问题:bash:/opt/hisi-linux/x86-arm/arm-hisiv300-linux/target/bin/arm-hisiv300-linux-gcc:没有那个文件或目录。安装完工具链,提示找不到gcc,但实际gcc工具已经安装上是由于开发环境是32位的,而当前的ubuntu是64位的解…

    2022年9月23日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号