sleep、yield、join方法简介与用法 sleep与wait区别 多线程中篇(十五)
sleep方法
package test1; import java.lang.Thread.State; public class T16 { public static void main(String[] args) { //模拟执行任务的第一个阶段的执行 Thread stepOne = new Thread(() -> { System.out.println(Thread.currentThread().getName()+" : 第一阶段任务开始执行"); try { Thread.sleep(1000); System.out.println(Thread.currentThread().getName()+" : 第一阶段任务执行结束"); } catch (InterruptedException e) { } }, "firstStage"); stepOne.start(); //模拟任务第二个阶段的执行 Thread stepTwo = new Thread(() -> { while (!State.TERMINATED.equals(stepOne.getState())) { try { Thread.sleep(100); System.out.println(Thread.currentThread().getName()+" : 我在等待第一阶段任务执行结束"); } catch (InterruptedException e) { } } System.out.println(Thread.currentThread().getName()+" : 第二阶段任务执行结束"); }, "secondStage"); stepTwo.start(); } }
yield方法
join方法
- 调用的哪个对象的join?
- 在哪里调用的?
join的效果是:一个线程等待另一个线程(直到结束或者持续一段时间)才执行,那么谁等待谁?
状态图回顾
总结
- wait和sleep都会使线程进入阻塞状态,都是可中断方法,被中断后都会抛出异常
- wait是Object的方法,sleep是Thread的方法
- wait必须在同步中执行,sleep不需要(join底层依赖wait,但是不需要在同步中,因为join方法就是synchronized的)
- wait会释放锁,sleep不会释放锁
- wait(无超时设置的版本)会持续阻塞,必须等待唤醒,而sleep必然有超时,所以一定会自己醒来
- wait 实例方法(Object),在对象上调用,表示在其上等待;sleep静态方法,当前线程
转载于:https://www.cnblogs.com/noteless/p/10443446.html
sleep、yield、join方法简介与用法 sleep与wait区别 多线程中篇(十五)相关推荐
- left join 和join区别_sleep、yield、join方法简介与用法 sleep与wait区别 多线程中篇
Object中的wait.notify.notifyAll,可以用于线程间的通信,核心原理为借助于监视器的入口集与等待集逻辑 通过这三个方法完成线程在指定锁(监视器)上的等待与唤醒,这三个方法是以锁( ...
- java 轻量级同步volatile关键字简介与可见性有序性与synchronized区别 多线程中篇(十二)...
概念 JMM规范解决了线程安全的问题,主要三个方面:原子性.可见性.有序性,借助于synchronized关键字体现,可以有效地保障线程安全(前提是你正确运用) 之前说过,这三个特性并不一定需要全部同 ...
- full outer join 与full join的区别_sleep、yield、join都是干啥的? sleep与wait有啥区别?中篇[十五]...
点击上方 " 布衣码农 " ,免费订阅~选择" 设为星标 ",第一时间免费获得更新~ 「布衣码农」用不到却又不得不学习了解的底层方法+1.Object中的wai ...
- java long 详解_JavaSE之Long 详解 Long的方法简介以及用法
基本功能 Long 类在对象中包装了基本类型 long 的值 每个 Long 类型的对象都包含一个 long 类型的字段 static long MAX_VALUElong 8个字节 最大值2^63- ...
- 线程join_Java 并发编程:线程间的协作(wait/notify/sleep/yield/join)
点击上方"Coder编程",选择"置顶公众号" 技术文章第一时间送达! 并发编程.png 每天进步一点,不做curd工程师与Api调用工程师 欢迎访问 个人博客 ...
- 线程状态以及sleep yield wait join方法
前言 在日常的开发过程中,我们通过会使用Thread.sleep模拟一个耗时的任务执行过程. 在深入理解这四个方法之前,首先对线程的状态进行理解阐述. 线程概念 线程是操作系统执行任务的基本单位,处理 ...
- java线程 yield_Java线程中yield与join方法的区别
长期以来,多线程问题颇为受到面试官的青睐.虽然我个人认为我们当中很少有人能真正获得机会开发复杂的多线程应用(在过去的七年中,我得到了一个机会),但是理解多线程对增加你的信心很有用.之前,我讨论了一个w ...
- 线程相关的sleep()、yield()、wait()、join()方法介绍
1.Thread.sleep()与Thread.yield()都会暂缓当前线程执行,给其他线程执行机会(sleep会忽略优先级,yield则只会给优先级相同或者更高的线程),不会释放锁,只会释放CPU ...
- join方法及其调用yield sleep wait notify方法会对锁产生的影响
join方法 线程A执行了线程B的join方法,,线程A必须要等线程B执行完成后,线程A才能继续执行 感觉像是插队[捂脸] package org.dance.day1;import org.danc ...
- tp5讲一个值传到另外一个控制里_tp5.1 框架join方法用法实例分析
本文实例讲述了tp5.1 框架join方法用法.分享给大家供大家参考,具体如下: JOIN方法用于根据两个或多个表中的列之间的关系,从这些表中查询数据.join通常有下面几种类型,不同类型的join操 ...
最新文章
- 程序员2004下载地址
- 七十三、Python | Leetcode数字系列(上篇)
- 543. 二叉树的直径
- 手动为 SAP Spartacus 添加 SSR 支持的步骤
- 外设驱动库开发笔记32:HLPM025K3 PM2.5传感器驱动
- 使用gorilla/mux增强Go HTTP服务器的路由能力
- uniapp 获取图片的高度_uniapp自定义切图
- Java局域网对战游戏、天气预报项目
- AndroidStudio_开发工具_调试功能---Android原生开发工作笔记75
- 《C#线程参考手册》读书笔记(三):.NET中的线程池
- oracle11 g ora 03113,解决oracle11g ORA-32004: obsolete or deprecated parameter(s)
- 象棋程序 android,中国象棋人机对弈程序在Android系统上的设计与实现
- 移动开发的设计稿为什么大多数是750px?
- 开题报告中的研究现状怎么写?
- python给excel添加超链接_《python3教程》 python用xlwt,超链接到另一sheet,如何设置HYPERLINK...
- Map和String互相转换
- Android相机开发 延时摄影的一些实现思路
- 使用SwiftyJSON解析JSON
- (NSMenu,NSMenuItme)如何在菜单栏添加新的菜单
- OpenCV 形态学操作之腐蚀与膨胀,开运算与闭运算,顶帽与黑帽,图像梯度运算相关知识点回顾