1、
写两个线程,一个线程打印1-52,另一个线程打印字母A-Z。
打印顺序为12A34B56C……5152Z。
学习线程之间的通信协调关系。
代码
线程类Thread01
package com.ljq.test; public class Thread01 implements Runnable { private Object obj; public Thread01(Object obj) { this .obj = obj; } public void run() { synchronized (obj) { for ( int i = 1 ; i <= 26 ; i ++ ) { System.out.print( 2 * i - 1 + "" ); System.out.print( 2 * i + "" ); obj.notifyAll(); try { obj.wait(); } catch (InterruptedException e) { e.printStackTrace(); } } } } }
线程类Thread02
package com.ljq.test; public class Thread02 implements Runnable { private Object obj; public Thread02(Object obj) { this .obj = obj; } public void run() { synchronized (obj) { for ( char c = ' A ' ; c <= ' Z ' ; c ++ ) { System.out.print(c + "" ); obj.notifyAll(); try { obj.wait(); } catch (InterruptedException e) { e.printStackTrace(); } } } } }
测试类ThreadTest
package com.ljq.test; public class ThreadTest { public static void main(String[] args) { Object obj = new Object(); Thread01 t1 = new Thread01(obj); Thread02 t2 = new Thread02(obj); Thread thread01 = new Thread(t1); Thread thread02 = new Thread(t2); thread01.start(); thread02.start(); } }