写两个线程,一个线程打印1-52,另一个线程打印A-Z,打印顺序为12A34B56C......5152Z。
2013-09-25 19:11
330 查看
写两个线程,一个线程打印1-52,另一个线程打印A-Z,打印顺序为12A34B56C......5152Z。要求用线程间的通信。
注:分别给俩个对象构造一个对象O,数字每打印两个或字母每打印一个就执行O.wait().
注:分别给俩个对象构造一个对象O,数字每打印两个或字母每打印一个就执行O.wait().
package com.lovo.t_9_22; public class MyThread { /** * @param args */ public static void main(String[] args) { Object obj = new Object(); Thread1 th1 = new Thread1(obj); Thread2 th2 = new Thread2(obj); th1.start();//开启线程 th2.start(); } } /** * 数字线程类 * @author Administrator * */ class Thread1 extends Thread{ private Object obj; public Thread1(Object obj){ this.obj=obj; } public void run() { synchronized (obj) { for(int i=1;i<53;i++){ System.out.print(i); if(i%2==0){//打印到能被2整除时,需要打印字母,于是需要唤醒其他线程 obj.notifyAll(); try { obj.wait();//当前对象处于等待状态 } catch (InterruptedException e) { e.printStackTrace(); } } } } } } /** * 字母线程类 * @author Administrator * */ class Thread2 extends Thread{ private Object obj; public Thread2(Object obj) { this.obj=obj; } public void run() { synchronized (obj) { for(int i=0;i<26;i++){ System.out.print((char)('A'+i)+""); obj.notifyAll();//打印一个字母就会唤醒其他线程,并当前对象处于等待状态 if(i!=25){ try { obj.wait(); } catch (InterruptedException e) { e.printStackTrace(); } } } } } }
相关文章推荐
- 写两个线程,其中一个线程打印1-52,另一个打印A-Z,打印顺序为12A34B56C....5152Z
- 写两个线程,其中一个线程打印1-52,另一个打印A-Z,打印顺序为12A34B56C....5152Z。(《疯狂java讲义》第12章课后题一)
- 写两个线程,一个线程打印1-52,另一个线程打印字母A-Z。打印 顺序为12A34B56C……5152Z
- 写两个线程,一个线程打印 1~52,另一个线程打印字母A-Z。打印顺序为12A34B56C……5152Z
- 写两个线程,一个线程打印 1~52,另一个线程打印字母A-Z。打印顺序为12A34B56C……5152Z。要求用线程间的通信
- 写两个线程,一个线程打印 1~52,另一个线程打印字母A-Z。打印顺序为12A34B56C……5152Z。要求用线程间的通信
- 写两个线程,一个线程打印 1~52,另一个线程打印字母A-Z。打印顺序为12A34B56C……5152Z
- 写两个线程,一个线程打印1-52,另一个线程打印字母A-Z。打印 顺序为12A34B56C……5152Z
- 两个线程交替执行,一个打印1-52;一个打印A-Z;打印顺序为12A34B56C.....5152Z
- 写2个线程,其中一个线程打印1~52,另一个线程打印A~z,打印顺序应该是12A34B45C……5152Z
- 用java写两个线程,一个线程打印1-52,另一个线程打印字母A-Z
- 用java写两个线程,一个线程打印1-52,另一个线程打印字母A-Z
- 写2个线程,一个打印1-52,一个打印A-Z,打印顺序是12A34B。。。(采用同步代码块和同步方法两种同步方法)
- 写两个线程,一个线程打印1-52,另…
- 微软算法100道题-------输入两个整数序列。其中一个序列表示栈的push顺序, 判断另一个序列有没有可能是对应的pop顺序。
- 编写一个程序,开启3个线程,这3个线程的ID分别为A、B、C,每个线程将自己的ID在屏幕上打印10遍,要求输出结果必须按ABC的顺序显示;如:ABCABC….依次递推
- 编写一个程序,开启3个线程,这3个线程的ID分别为A、B、C,每个线程将自己的ID在屏幕上打印10遍,要求输出结果必须按ABC的顺序显示;如:ABCABC….依次递推。
- 编写一个程序,开启3个线程,这3个线程的ID分别为A、B、C,每个线程将自己的ID在屏幕上打印10遍,要求输出结果必须按ABC的顺序显示;如:ABCABC….依次递推。
- 【算法】输入两个整数序列。其中一个序列表示栈的push顺序,判断另一个序列有没有可能是对应的pop顺序。
- 每天学习一算法系列(27)(输入两个整数序列。其中一个序列表示栈的push 顺序,判断另一个序列有没有可能是对应的pop 顺序)