java线程中的notifyAll唤醒操作

注意:

java中的notifyAll和notify都是唤醒线程的操作,notify只会唤醒等待池中的某一个线程,但是不确定是哪一个线程,notifyAll是针对指定对象里面的所有线程执行唤醒操作,指定对象一旦唤醒成功。则会立即加入线程的资源争夺中去。

例如:

package TestThread.ThreadSynchronized;public class TestWaitAll {public static void main(String[] args) {Test1 test1 = new Test1();Thread t = new Thread(test1, "线程1");Thread t1 = new Thread(test1, "线程2");Thread t2 = new Thread(test1, "线程3");Test2 test2 = new Test2(test1, "唤醒线程");t.start();t1.start();t2.start();try {Thread.sleep(2000);} catch (InterruptedException e) {// TODO Auto-generated catch block
            e.printStackTrace();}test2.start();}
}class Test1 implements Runnable {public void run() {synchronized (this) {try {this.wait();} catch (InterruptedException e) {e.printStackTrace();}System.out.println(Thread.currentThread().getName() + "当前没有被执行到!");}}
}class Test2 extends Thread {private Test1 test1;String name;public Test2(Test1 test1, String name) {super(name);this.name = name;this.test1 = test1;}public void run() {synchronized (test1) {test1.notifyAll();// 针对当前对象执行唤醒所有线程的操作System.out.println(Thread.currentThread().getName() + ":唤醒线程执行成功!");}}
}

 执行结果为:

 

转载于:https://www.cnblogs.com/chaiyesong/p/6610110.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/417055.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

阻止html页面加载,如何防止页面加载重复的JS?

我自己写了一个页面,除了公共部分的页头页脚以外,其余内容都是通过Ajax加载过来的,现在遇到了比较头疼的问题:先说一下我加载的方式$.ajax({type : "GET",url : hrefPage,dataType : html,cache : true, // (warning: t…

IIS的安装与配置

安装IIS 若操作系统中还未安装IIS服务器,可打开“控制面板”,然后单击启动“添加/删除程序”,在弹出的对话框中选择“添加/删除Windows组件”,在Windows组件向导对话框中选中“Internet信息服务(IIS)”&…

ie11不兼容 html编辑器,ie11兼容性视图护驾浏览网页

安装 ie11 后,原来的在线网页编辑器不能粘贴、也不能插入图片了,有些网站也不能登录,怪不适用的,无奈只能启用ie11兼容模式。把显示或操作不正常的网站添加到兼容性视图后,又可以操作了,好在ie有兼容模式&a…

gitlab用户添加ssh免密钥认证后clone还是要求输入密码

今天在centos 7公网服务器上安装gitlab在配置ssh免密钥时遇到一个奇怪的事,正确添加了本机的公钥到gitlab账户上,进行clone时死活都要你输入密码gitlab使用yum安装的,之前在vmware虚机上的一台centos 7安装也没有这个问题根据这个文章的思路进…

yii源码学习心得

1.通过看源代码,对yii的框架学习有了更多的认识和理解 assets 前端资源文件夹,用于管理css js等前端资源文件等 commands 包含命令行命令,文件为控制器文件 config 应用的配置文件 controllers 控制器文件 mail (应用的前后台…

consul删除无效服务

curl http://server_ip:8500/v1/agent/service/deregister/paas-portal-sit-9003 -X PUT 删除无效服务: paas-portal-sit-9003 为服务名称 页面上进入服务详单(/ui/dc1/services/xxx)从这里找 删除无效节点: http://server_ip:8500/v1/agent/force-l…

英语四级真题作文 计算机,2019年6月大学英语四级作文范文50例:电脑

新东方在线英语四级频道为备考英语四级的同学们整理了英语四级作文范文,希望可以为大家带来帮助,一起来学习一下吧。Computers in Students’ Flats1. 现在大学生宿舍几乎人手一台电脑2. 有些人认为会促进学生的学习,有些人认为会影响学生的学…

java 抽象方法

int 是基本数据类型Integer是其包装类,注意是一个类。为什么要提供包装类呢???一是为了在各种类型间转化,通过各种方法的调用。否则 你无法直接通过变量转化。比如,现在int要转为Stringint a0;String resul…

1前端学习(2345):关于前端对于xml格式文件的渲染

一、xml和json对比 xml:扩展标记语言,     优点:格式统一,格式标准,容易与其他系统远程交互,数据共享比较方便     缺点:xml文件庞大,格式复杂,解析会花费大量时间和资源&am…

计算机网络管理员demo,计算机网络试题demo

计算机网络试题demo 1 北京交通大学 2006-2007 学年 第二学期考试试题 课程名称:计算机通信与网络技术 班级:电气 05 出题人:网络课程组 题 号 一 二 三 四 五 总分 得 分 签 字 一. 选择题(每题1 分,共20 分) 1&#…

什么是流程控制

浅析PHP流程控制 今天Qi号给小白们分享一下PHP基础(相互请教~~): 下面是Qi号搜集的资料及自己的总结希望有所帮助: 什么是流程控制:在声明式的编程语言中,流程控制指令是指会改变程序运行顺序的指令&#x…

Win10系列:JavaScript页面导航

页面导航是在开发应用的过程中使用频率较高的技术,其中比较常用的导航方式有多页导航和页内导航,采用多页导航方式的应用程序包含一系列的页面,在一个页面中加入另一个页面的链接地址后,单击链接将跳转到指定页面,从而…

前端学习(2347):创建新页面和配置

pages.json {"pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages{"path" : "pages/message/message","style" : {"navigationBarTitleText": "信…

计算机与现代教育技术论文开题报告,计算机科学技术大学硕士与本科毕业论文开题报告...

这是一篇计算机科学技术方面有关毕业论文题目范文,与二维动画设计与制作相关毕业论文。是写论文专业与计算机科学技术及计算机软件及发表一篇方面相关的免费优秀学术论文范文资料,可作为计算机科学技术方面的大学硕士与本科毕业论文开题报告范文和职称论文论文写作参…