package thread;

 public class ThreadWN implements Runnable {
public String name;
public String getName() {
return name;
}
static int a = 9;
public ThreadWN(String name) {
this.name = name;
}
@Override
public void run() {
while (a > 0) {
synchronized (ThreadWN.class) {
a--;
System.out.println("当前执行"+this.name+",并进入等待中......." );
try {
ThreadWN.class.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
} public static void main(String[] args) throws InterruptedException {
TestTH tth =new TestTH("唤醒");
Thread t =new Thread(tth);
ThreadWN wna = new ThreadWN("A");
ThreadWN wnb = new ThreadWN("B");
ThreadWN wnc = new ThreadWN("C");
ThreadWN wnd = new ThreadWN("D");
ThreadWN wne = new ThreadWN("E");
ThreadWN wnf = new ThreadWN("F");
Thread tha = new Thread(wna);
Thread thb = new Thread(wnb);
Thread thc = new Thread(wnc);
Thread thd = new Thread(wnd);
Thread the = new Thread(wne);
Thread thf = new Thread(wnf); tha.start();
Thread.sleep(10);
thb.start();
Thread.sleep(10);
thc.start();
Thread.sleep(10);
thd.start();
Thread.sleep(10);
the.start();
Thread.sleep(10);
thf.start();
Thread.sleep(10);
t.start(); } }
class TestTH implements Runnable{ private String name; public TestTH(String name) {
this.name=name;
}
public String getName() {
return name;
}
@Override
public void run() {
for (int i = 0; i < 6; i++) {
synchronized (ThreadWN.class) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
System.out.println(this.getName()+"进程:"+"唤醒了一个线程!!!");
ThreadWN.class.notify();
}
}
} }

Java多线程多个线程wait(),一个notify()唤醒,唤醒的顺序的更多相关文章

  1. -1-5 java 多线程 概念 进程 线程区别联系 java创建线程方式 线程组 线程池概念 线程安全 同步 同步代码块 Lock锁 sleep()和wait()方法的区别 为什么wait(),notify(),notifyAll()等方法都定义在Object类中

     本文关键词: java 多线程 概念 进程 线程区别联系 java创建线程方式 线程组 线程池概念 线程安全 同步 同步代码块 Lock锁  sleep()和wait()方法的区别 为什么wait( ...

  2. Java多线程并发02——线程的生命周期与常用方法,你都掌握了吗

    在上一章,为大家介绍了线程的一些基础知识,线程的创建与终止.本期将为各位带来线程的生命周期与常用方法.关注我的公众号「Java面典」了解更多 Java 相关知识点. 线程生命周期 一个线程不是被创建了 ...

  3. Java多线程系列--“JUC线程池”06之 Callable和Future

    概要 本章介绍线程池中的Callable和Future.Callable 和 Future 简介示例和源码分析(基于JDK1.7.0_40) 转载请注明出处:http://www.cnblogs.co ...

  4. Java多线程系列--“JUC线程池”02之 线程池原理(一)

    概要 在上一章"Java多线程系列--“JUC线程池”01之 线程池架构"中,我们了解了线程池的架构.线程池的实现类是ThreadPoolExecutor类.本章,我们通过分析Th ...

  5. Java多线程系列--“JUC线程池”03之 线程池原理(二)

    概要 在前面一章"Java多线程系列--“JUC线程池”02之 线程池原理(一)"中介绍了线程池的数据结构,本章会通过分析线程池的源码,对线程池进行说明.内容包括:线程池示例参考代 ...

  6. Java多线程系列--“JUC线程池”04之 线程池原理(三)

    转载请注明出处:http://www.cnblogs.com/skywang12345/p/3509960.html 本章介绍线程池的生命周期.在"Java多线程系列--“基础篇”01之 基 ...

  7. Java多线程系列--“JUC线程池”05之 线程池原理(四)

    概要 本章介绍线程池的拒绝策略.内容包括:拒绝策略介绍拒绝策略对比和示例 转载请注明出处:http://www.cnblogs.com/skywang12345/p/3512947.html 拒绝策略 ...

  8. 转:java多线程CountDownLatch及线程池ThreadPoolExecutor/ExecutorService使用示例

    java多线程CountDownLatch及线程池ThreadPoolExecutor/ExecutorService使用示例 1.CountDownLatch:一个同步工具类,它允许一个或多个线程一 ...

  9. Java多线程——进程和线程

    Java多线程——进程和线程 摘要:本文主要解释在Java这门编程语言中,什么是进程,什么是线程,以及二者之间的关系. 部分内容来自以下博客: https://www.cnblogs.com/dolp ...

  10. Java多线程之守护线程

    Java多线程之守护线程 一.前言 Java线程有两类: 用户线程:运行在前台,执行具体的任务,程序的主线程,连接网络的子线程等都是用户线程 守护线程:运行在后台,为其他前台线程服务 特点:一旦所有用 ...

随机推荐

  1. Mac pycharm专业版安装以及破解方法

    1.先在Pycharm官网,或者直接输入网址:http://www.https://www.jetbrains.com/pycharm/ 2.修改hosts文件 sudo vim /etc/hosts ...

  2. 新手学Linux:在VMware14中安装CentOS7详细教程

    VMware Workstation14安装CentOS7.0 详情教程 1.准备工作 a)下载VMware workstation14 b)下载CentOS7 c)下载SSH Secure Shel ...

  3. Java虚拟机18:Java对象大小、对象内存布局及锁状态变化

    一个对象占多少字节? 关于对象的大小,对于C/C++来说,都是有sizeof函数可以直接获取的,但是Java似乎没有这样的方法.不过还好,在JDK1.5之后引入了Instrumentation类,这个 ...

  4. Python内置函数.md

    Python3 内置函数 abs(x) 返回一个数的绝对值.参数可以是一个整数或者一个浮点数.如果参数是一个复数,那么将返回它的模. >>> abs(-123456) 123456 ...

  5. 2016-3-19日小结:scrollTop

    <div id="div1" style="padding: 0; position:absolute;width: 200px;height: 200px;< ...

  6. webpack超详细配置, 使用教程(图文)

    流程 webpack安装 Step 1: 首先安装Node.js, 可以去Node.js官网下载. Step2: 在Git或者cmd中输入下面这段代码, 通过全局先将webpack指令安装进电脑中np ...

  7. PCB布线经验

      查看: 3645|回复: 11    [经验] PCB设计经验(1)——布局基本要领 [复制链接]     ohahaha 927 TA的帖子 0 TA的资源 纯净的硅(中级) 发消息 加好友 电 ...

  8. C++反汇编代码分析–函数调用

    转载:http://shitouer.cn/2010/06/method-called/ 代码如下:#include “stdlib.h” int sum(int a,int b,int m,int ...

  9. 面向对象之static关键字

    static概念 static它是静态修饰符,一般用来修饰类中的成员. static特点 1.多个对象共享一个static成员变量.一个对象将static成员变量值修改了,其他对象中的static成员 ...

  10. Dijkstra学习笔记

    暂时空白.... 没有前置,我用vector存图 //存储 struct edge{ int w,to;//w是权值,to是连接到的下一条边 }; vector<edge> e; //连边 ...