notifyAll()_notify for

notifyAll()_notify for下面这段代码suclassCalculaterextendsThread{ publicinttotal=1; publicvoidrun(){ System.out.println(“Calculatorrun”); synchronized(this){ for(inti=1;i<10;i++){ total*=i; }

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

下面这段代码说明了, notifyAll将所有等待在Calculater对象cal的对象锁上的所有线程从阻塞状态变为可运行状态, 但是他们要获得cal对象锁才能继续执行, 随意他们会按随机顺序一个一个的执行完剩下的代码。

class Calculater extends Thread{
	public int total = 1;
	public void run(){
		System.out.println("Calculator run");
		synchronized(this){
			for(int i=1; i<10; i++){
				total *= i;
			}
			notifyAll();
		}
	}
}

public class NotifyAllTest extends Thread{
	public Calculater cal;
	public NotifyAllTest(Calculater cal){
		this.cal = cal;
	}
	public void run(){
		System.out.println(this.currentThread()+" runing ");
		synchronized(this.cal){
			try {
				this.cal.wait();
				System.out.println(this.currentThread() + "wake up");
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			System.out.println(this.currentThread()+" : total = "+this.cal.total);
			try {
				Thread.sleep(1000);
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
	public static void main(String [] args) throws InterruptedException{
		Calculater cal = new Calculater();
		new NotifyAllTest(cal).start();
		new NotifyAllTest(cal).start();
		new NotifyAllTest(cal).start();
		new NotifyAllTest(cal).start();
		new NotifyAllTest(cal).start();
		Thread.sleep(1000);
		cal.start();
	}

}

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

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/197761.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • struct的用法「建议收藏」

    struct的用法「建议收藏」使用结构体类型处理组合数据:即用户自定义数据类型。1c语言提供了很多系统类型。如intcharfloatdouble等等,但是这都是单一的数据类型,如果对于一个学生作为一个整体的话,那么他的

  • ajax中回调的几个坑

    ajax中回调的几个坑

  • [029] 微信公众帐号开发教程第5篇-各种消息的接收与响应[通俗易懂]

    [029] 微信公众帐号开发教程第5篇-各种消息的接收与响应[通俗易懂]前一篇文章里我们已经把微信公众平台接口中消息及相关操作都进行了封装,本章节将主要介绍如何接收微信服务器发送的消息并做出响应。明确在哪接收消息从微信公众平台接口消息指南中可以了解到,当用户向公众帐号发消息时,微信服务器会将消息通过POST方式提交给我们在接口配置信息中填写的URL,而我们就需要在URL所指向的请求处理类CoreServlet的doPost方法中接收消息、处理消息和响应

  • 从零开始学习UCOSII操作系统2–UCOSII的内核实现「建议收藏」

    从零开始学习UCOSII操作系统2–UCOSII的内核实现「建议收藏」从零开始学习UCOSII操作系统2–UCOSII的内核实现参考书籍:《嵌入式实时操作系统μCOS-II原理及应用》、《嵌入式实时操作系统uCOS-II邵贝贝(第二版)》1、任务的结构–任务控制块首先这个任务控制块是非常的大的,这里面使用很多的宏定义,估计是可以让使用者使用的时候按需配置。所以这里只是整理一些必须要用到的功能,不常用的不讲,讲了就会变成一本书了。(1)任务的关键 OS_ST…

  • mp4 文件中的h264 avc1格式介绍

    mp4 文件中的h264 avc1格式介绍转自:http://www.mworkbox.com/wp/work/314.htmlMP4的视频H264封装有2种格式:h264和avc1,对于这个细节,很容易被忽略。笔者也是在改编LIVE555流媒体时,增加mp4文件类型支持时遇到了该问题。(一)首先,从原理上了解一下这2种格式的区别:AVC1描述:H.264bitstreamwithoutstartcode

    2022年10月17日
  • USACO maze1 BFS

    USACO maze1 BFS

发表回复

您的电子邮箱地址不会被公开。

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