Java 两线程交替打印奇偶数
Posted 龙心七号
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java 两线程交替打印奇偶数相关的知识,希望对你有一定的参考价值。
使用synchronized 及 Object对象的wait()和notifyAll()方法, Code如下
package com.shiwei.thread; public class OddEvenRunable { private static Object lock = new Object(); public static void main(String[] args) { PrintNumber pOdd = new PrintNumber(true, lock); PrintNumber pEven = new PrintNumber(false, lock); Thread t1 = new Thread(pOdd); Thread t2 = new Thread(pEven); t1.start(); t2.start(); } } class PrintNumber implements Runnable{ Boolean flag; Object lock; public PrintNumber(Boolean flag, Object lock){ this.flag = flag; this.lock = lock; } public void run() { for(int i=1; i< 20; i=i+2){ synchronized(lock){ if(flag){ System.out.println("a---"+i); }else{ System.out.println("b---"+(i+1)); } lock.notifyAll(); try { lock.wait(); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } }
I. synchronized 锁住的是对象
//@TODO
II. Object wait(), notify() 和notifyAll()
//@TODO
以上是关于Java 两线程交替打印奇偶数的主要内容,如果未能解决你的问题,请参考以下文章