第十五周Java作业-1线程同步机制
2017-12-06 17:46
155 查看
public class Example { /** 编写多线程程序,模拟多个人通过一个山洞。这个山洞每次只能通过一个人,, 每个人通过山洞的时间为2秒(sleep)。随机生成10个人,都要通过此山洞, 用随机值对应的字符串表示人名,打印输出每次通过山洞的人名。 提示:利用线程同步机制,过山洞用一条输出语句表示,该输出语句打印输出当前过山洞 的人名,每个人过山洞对应一个线程,哪个线程执行这条输出语句,就表示哪个人过 山洞。 */ public static void main(String[] args) { //实例化山洞 Shandong shandong = new Shandong(); //创建10个线程 Thread thread1 = new Thread(shandong, "1"); Thread thread2 = new Thread(shandong, "2"); Thread thread3 = new Thread(shandong, "3"); Thread thread4 = new Thread(shandong, "4"); Thread thread5 = new Thread(shandong, "5"); Thread thread6 = new Thread(shandong, "6"); Thread thread7 = new Thread(shandong, "7"); Thread thread8 = new Thread(shandong, "8"); Thread thread9 = new Thread(shandong, "9"); Thread thread10 = new Thread(shandong, "10"); thread1.start(); thread2.start(); thread3.start(); thread4.start(); thread5.start(); thread6.start(); thread7.start(); thread8.start(); thread9.start(); thread10.start(); } } //山洞 class Shandong extends Thread{ @Override public void run() { //上锁 synchronized(this){ System.out.println(Thread.currentThread().getName()+"正在通过,请等待5s"); try { sleep(2000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }
运行结果:
1正在通过,请等待2s
9正在通过,请等待2s
7正在通过,请等待2s
5正在通过,请等待2s
10正在通过,请等待2s
3正在通过,请等待2s
8正在通过,请等待2s
6正在通过,请等待2s
4正在通过,请等待2s
2正在通过,请等待2s
“`
相关文章推荐
- 12.6第十五周JAVA作业
- 第十五周java作业 -猜数字
- 第十五周Java作业
- 第十五周Java作业--线程
- 记录--java进阶--翁凯--第二周作业
- IT十八掌作业_java基础第十三天_IO
- JAVA第九次作业(2)
- JAVA第三周编程作业 奇偶个数 数字特征值
- 9.13第二周java作业
- 【求助】一个菜鸟java作业,帮忙看一下错在哪儿,题目是判断回文数
- java作业
- 我的java学习 の 数组作业
- java,jsp,javaweb毕业设计,期末作业运行环境搭建教程
- Java课程作业1
- Java第二次作业參考代码
- Java 程序小作业 输入 字符串转化
- 吉软-java57-第四次作业
- 吉软_Java57_第十一次作业
- java作业1
- Java作业:大数累加(我是真不知道有什么用)