java多线程通信问题
2016-07-22 09:30
363 查看
wait(100L)意思为:不占用CPU,线程等待100毫秒
notify():唤醒正在排队等待同步资源的线程优先级最高者结束等待。
notifyAll():唤醒所有正在排队等待同步资源的线程。
并且这三个方法必须在synchronized块内执行否则会报异常
让两个线程循环打印1-100比如a打印1,b打印1,a2,b2
notify():唤醒正在排队等待同步资源的线程优先级最高者结束等待。
notifyAll():唤醒所有正在排队等待同步资源的线程。
并且这三个方法必须在synchronized块内执行否则会报异常
让两个线程循环打印1-100比如a打印1,b打印1,a2,b2
package com.thread.test1; public class TestPrintOne { /** * @param args */ public static void main(String[] args) { PrintOne one = new PrintOne(); Thread t1 = new Thread(one); Thread t2 = new Thread(one); t1.setName("1"); t2.setName("2"); t1.start(); t2.start(); } } class PrintOne implements Runnable { @Override public void run() { for (int i = 0; i <= 100; i++) { synchronized (this) { //进入同步块的时候进行唤醒 notifyAll(); System.out .println(Thread.currentThread().getName() + "打印的" + i); try { wait(); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } }
相关文章推荐
- Spring总结—— IOC 和 Bean 的总结
- Java Bean
- 在线生成myeclipse注册码
- 在线生成myeclipse注册码
- 在线生成myeclipse注册码
- JAVA结构型模式
- Java框架介绍-13个不容错过的框架项目
- Acm 62 笨小熊
- thingking in java2.11练习(3)
- Ubuntu下配置Eclipse调试环境
- spring配置事务处理的五种方式
- 设计模式之观察者模式
- java产生随机数的三种方式
- java反向工程神器ermaster
- 在eclipse中使用android tools 打包出现的错误的解决方法
- Java 中对于枚举双值的使用
- java重写和重载
- Java map遍历
- JDBC批处理---(java 对数据库的回滚)
- Java并发编程:CountDownLatch、CyclicBarrier和Semaphore