lesson 10:线程 模拟山洞

来源:互联网 发布:上海程序员培训哪里有 编辑:程序博客网 时间:2024/06/02 07:46

题目:

         编写多线程程序,模拟多个人通过一个山洞。这个山洞每次只能通过一个人,每个人通过山洞的时间为2秒(sleep)。随机生成10个人,都要通过此山洞,用随机值对应的字符串表示人名,打印输出每次通过山洞的人名。提示:利用线程同步机制,过山洞用一条输出语句表示,该输出语句打印输出当前过山洞的人名,每个人过山洞对应一个线程,哪个线程执行这条输出语句,就表示哪个人过山洞。


代码:

package 线程;import java.util.*;public class aa implements Runnable {@Overridepublic void run() {//模拟山洞Thread th =Thread.currentThread();System.out.println(th.getName());try{Thread.sleep(2000);}catch(Exception e){System.err.println("出错");}}}

package 线程;import java.util.*;public class Text{public static void main(String[] args){aa a=new aa();//线程接口实例Thread thread1=new Thread(a,"text1");//创建线程对象Thread thread2=new Thread(a,"text2");//创建线程对象Thread thread3=new Thread(a,"text3");//创建线程对象Thread thread4=new Thread(a,"text4");//创建线程对象Thread thread5=new Thread(a,"text5");//创建线程对象Thread thread6=new Thread(a,"text6");//创建线程对象Thread thread7=new Thread(a,"text7");//创建线程对象Thread thread8=new Thread(a,"text8");//创建线程对象Thread thread9=new Thread(a,"text9");//创建线程对象Thread thread10=new Thread(a,"text10");//创建线程对象thread1.start();thread2.start();thread3.start();thread4.start();thread5.start();thread6.start();thread7.start();thread8.start();thread9.start();thread10.start();}}
结果:上机时完成,未截屏

阅读全文
0 0