java wait abc_java----wait/notify
解释
wait/notify必须配合synchronized使用
demo
class NotifyStop2 {
private final Object lock = new Object();
public void add(String s) throws InterruptedException {
Thread.sleep(1000);
synchronized (lock) {
System.out.println("add notify qian");
//唤醒其他线程,但是其他线程不能执行,因为lock这把锁,还是被我占用的
lock.notify();
System.out.println("add notify hou");
try {
Thread.sleep(5000);
System.out.println("add wait qian");
//释放lock锁,其他线程可以执行了【使用wait释放锁,或者方法执行完毕,也是释放锁】
lock.wait();
System.out.println("add wait hou");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public void get() throws InterruptedException {
synchronized (lock) {
try {
System.out.println("get wait qian");
lock.wait();
System.out.println("get wait hou");
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("get notify qian");
lock.notify();
Thread.sleep(5000);
System.out.println("get notify hou");
}
}
public static void main(String[] args) {
NotifyStop2 notifyStop2 = new NotifyStop2(); //特别注意使用同一个对象进行调用
new Thread(() -> {
try {
notifyStop2.add("abc");
} catch (InterruptedException e) {
e.printStackTrace();
}
}, "t1").start();
new Thread(() -> {
try {
notifyStop2.get();
} catch (InterruptedException e) {
e.printStackTrace();
}
}, "t2").start();
}
}
java wait abc_java----wait/notify相关推荐
- Java的wait()、notify()学习三部曲之一:JVM源码分析
原文链接:https://blog.csdn.net/boling_cavalry/article/details/77793224 综述 Java的wait().notify()学习三部曲由三篇文章 ...
- Java 多线程编程之 notify notifyAll wait lock unlock 算法
写了一个类来理解java 同步机制的算法.这个类并不适合实战,而仅仅是算法层面进行理解. package multithread; import java.util.ArrayList;import ...
- java中wait和notify的虚假唤醒问题
前言 本篇博客来自 https://www.cnblogs.com/clover-forever/p/12616869.html 自己在此记录一下,方便日后复习. 虚假唤醒的概念 jdk官方文档解释: ...
- java+synchro_synchrozied,wait()与notify()的理解
public class TestWait{ private List list = new ArrayList(); public TestWait(){ } public synchronized ...
- Java 多线程 —— wait 与 notify
引言 认识一下 Object 类中的两个和多线程有关的方法:wait 和 notify. wait,当前线程进入 WAITING 状态,释放锁资源. notify,唤醒等待中的线程,不释放锁资源. 一 ...
- java 中的wait notify
Wait&Notify 以下内容来自<Java并发编程的艺术>,4.3.2 等待/通知机制 线程A等待某一个变量_v_满足某个条件,而线程B会在某个不确定的时刻修改_v_,以使其满 ...
- Java多线程中wait, notify and notifyAll的使用
本文为翻译文章,原文地址:http://www.journaldev.com/1037/java-thread-wait-notify-and-notifyall-example 在Java的Obje ...
- java线程学习之notify方法和notifyAll方法
notify(通知)方法,会将等待队列中的一个线程取出.比如obj.notify();那么obj的等待队列中就会有一个线程选中并且唤醒,然后被唤醒的队列就会退出等待队列.活跃线程调用等待队列中的线程时 ...
- java thread.notify_Java Thread notify()方法
Thread类的notify()方法用于唤醒单个线程. 此方法仅为一个等待特定对象的线程提供通知. 如果使用notify()方法并且有多个线程正在等待通知,那么只有一个线程获得通知,而剩下的线程必须等 ...
- JAVA——利用wait和notify实现生产者和消费者
经典的消费者和生产者的的实现: 注意事项: 1:在循环里面用wait(),因为当线程获得了锁,但是有可能还没有满足其他条件: 2:公用的缓冲池要用锁机制: 1 package demo; 2 3 im ...
最新文章
- LCS最长公共子序列和LIS最长上升子序列——例题剖析
- 把集成测试和单元测试写一起是一种什么体验?
- java判断栈空_java中栈的应用-判断分隔符是否合理
- (转)【前端模板之路】一、重构的兄弟说:我才不想看你的代码!把HTML给我交出来!...
- struc,union,class的内存对齐方式
- 95-130-502-源码-source-ElasticSearch相关-ElasticSearch connector
- python写一个crm系统_用Python打造一个CRM系统(四)
- 熊猫分发_熊猫下降列和行
- es6.0 java,es6.0.0源码idea启动问题
- 基于OHCI的USB主机 —— UFI读扇区代码
- 微信小程序添加icon图标教程
- Java实现熵值法计算_熵值法确定权重的步骤及适用范围
- excel根据空格把数据分列
- 【Python 脚本报错】AttributeError:‘module‘ has no attribute ‘xxx‘的解决方法
- Android调用系统相机拍摄视频以及获取缩略图
- 融云通讯服务器,发送图片到自己的服务器
- ubuntu18.04 安装Adobe Flash Player
- c调用python第三方包_cbillington_Python包维护者_第三方库作者_PyPI项目模块Package - Python中文网...
- Java基础 DAY14
- 恶性淋巴瘤及其实验诊断题库【1】