两个线程交替打印字母 java
2014-09-10 20:49
567 查看
package com.example.socket; public class test { private static Object LOCK = new Object(); private static boolean flag = false; class A extends Thread{ public void run() { for (int c = 0; c <= 10; c++) { synchronized (LOCK) { System.out.println("a"); if(!flag){ flag = true; LOCK.notify(); //在这里虽然唤醒了另一个线程b,但锁并没有释放 try { LOCK.wait();//在wait后的瞬间线程b得到锁 } catch (InterruptedException e) { e.printStackTrace(); } } } } } } class B extends Thread{ public void run() { for (int c = 0; c <= 10; c++) { synchronized (LOCK) { System.out.println("b"); if(flag){ flag = false; LOCK.notify(); try { LOCK.wait(); } catch (InterruptedException e) { e.printStackTrace(); } } } } } } public static void main(String[] args) { test x = new test(); x.new A().start(); x.new B().start(); } }
参考自http://jeasonjack.iteye.com/blog/1844512
相关文章推荐
- Java两个线程交替打印(实现Runnable接口)
- 使用Java线程并发库实现两个线程交替打印的线程题
- 用java写两个线程,一个线程打印1-52,另一个线程打印字母A-Z
- Java实现两个线程交替打印问题
- 使用Java线程并发库实现两个线程交替打印的线程题
- 用java写两个线程,一个线程打印1-52,另一个线程打印字母A-Z
- 两个线程交替打印ABCDEF
- 写两个线程,一个线程打印 1~52,另一个线程打印字母A-Z。打印顺序为12A34B56C……5152Z。要求用线程间的通信
- 两个线程交替打印ABABAB
- 两个线程交替打印字符串
- 写两个线程,一个线程打印 1~52,另一个线程打印字母A-Z。打印顺序为12A34B56C……5152Z
- 写两个线程,一个线程打印1-52,另一个线程打印字母A-Z。打印 顺序为12A34B56C……5152Z
- Java 多线程中。两个线程交替执行,一个输出偶数,一个输出奇数
- 两个线程A和B, A打印1, 3, ..., 99, B打印2, 4, ..., 100, 要求A和B严格交替打印(Java实现)
- Java 创建两个线程,和主线程交替运行。
- java两个线程交替执行
- 两个线程交替打印ABABAB
- 三个Java线程(使用线程池)交替打印1到75个数的两种解法
- java 中的wait和notify以及synchronized的使用,实现两个线程交替执行
- 写两个线程,一个线程打印 1~52,另一个线程打印字母A-Z。打印顺序为12A34B56C……5152Z。要求用线程间的通信