Java线程状态运行原理解析
作者:糖不甜,盐不咸 发布时间:2023-02-27 05:13:24
标签:Java,线程,状态,运行
这篇文章主要介绍了Java线程状态运行原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
代码实例如下
package com.fgy.demo05;
/**
* 等待唤醒案例:线程之间通信
* 注意:
* 同步使用的锁对象必须唯一
* 只有锁对象才能调用wait和notify()/notifyAll()方法
*/
public class Demo1WaitAndNotify {
public static void main(String[] args) {
Object obj = new Object();
new Thread() {
@Override
public void run() {
synchronized (obj) {
System.out.println("顾客告知要的包子和数量");
try {
obj.wait();
// obj.wait(5000); // 如果5秒后没有被唤醒,则会自动醒来
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("老板把包子做好了,可以开吃");
}
}
}.start();
new Thread() {
@Override
public void run() {
try {
Thread.sleep(5000); // 花费5秒做包子
} catch (InterruptedException e) {
e.printStackTrace();
}
synchronized (obj) {
System.out.println("告知客户,可以吃包子了");
obj.notify();
}
}
}.start();
}
}
来源:https://www.cnblogs.com/roadlandscape/p/12105203.html


猜你喜欢
- pom.xml配置<dependency> <groupId>org.springframework.
- 前言最近都是Mybatis-Plus系列的小白文,算是对工作中最常使用的框架的细节扫盲。有在学习Mybatis-Plus使用的,可以关注一波
- MainActivity.java package com.zhang.showPhoto;import android.app.Actio
- package com.letv.cloud.spider;import java.util.HashSet;import java.uti
- 拆分实现流程请看下面这张图首先我们得对线程池进行一个功能拆分Thread Pool 就是我们的线程池,t1,t2,t3代表三个线程Block
- 简介MapStruct 是一个代码生成器(可以生成对象映射转换的代码),它基于约定优于配置的方法,极大地简化了 Java bean 类型之间
- JetBrainsMono 是 JetBrains 公司开发的一款开源字体,可免费商用。正如其名字带的Mono,即Monospaced Fo
- 安装 Tomcat 之前请一定先安装 Java ,然后才能安装 Tomcat 。安装 Java 、环境变量 path 的设置以及 cmd 小
- 1.新建一个filter‘包2.新建一个类,实现ZuulFilter,重写里面的方法3.在顶部类添加注解,@Component,让Sprin
- 本文实例演示了DevExpress实现GridControl单元格编辑验证的方法,比较实用的功能,具体方法如下:主要功能代码如下:/// &
- 最近在开发一个项目,需要写一个后管系统,Bootstrap是美国Twitter公司的设计师Mark Otto和Jacob Thornton合
- Java中的StringUtils引入及使用pom.xml中引入依赖<!-- https://mvnrepository.com/ar
- 文件创建:File.Create(Application.StartupPath + "\\AlarmSet.txt")
- 示例【通过班级查询老师信息】创建t_classes创建t_classessTeacher创建t_teacher创建Classespackag
- 目录1、如果一个方法或变量是"private"访问级别,那么它的访问范围是:2、代码将打印?3、下面关于hibernat
- java数组初始化赋初值方法一int[] vis1;//声明未初始化 vis1=new in
- 如果对空的对象进行操作,就会造成意外错误。所以我们在使用对象前,一般会进行非空判断接下来介绍我知道的三种判断非空方法:1、if判断这个最直接
- C# DateTime与时间戳的相互转换,包括JavaScript时间戳和Unix的时间戳。1. 什么是时间戳首先要清楚JavaScript
- 请求参数解析客户端请求在handlerMapping中找到对应handler后,将会继续执行DispatchServlet的doPatch(
- 本文主要介绍了WPF中常用的鼠标事件、键盘事件以及注意事项,同时使用一个案例讲解了拓展事件。除此之外,本文还讲述如何用行为(Behavior