Java基础--多线程--练习(过隧道)
2015-07-16 18:59
363 查看
编写多线程应用程序,模拟多个人通过一个山洞:
1、 这个山洞每次只能通过一个人,每个人通过山洞的时间为5秒2、随机生成10个人,同时准备过此山洞,显示一下每次通过山洞人的姓名
MuThreadTest.java
package com.Train; public class MuThreadTest{ public static void main(String[] args) { // TODO Auto-generated method stub //创建一个山洞 Tunnel tul = new Tunnel(); //十个人过山洞 Thread p1 = new Thread(tul,"p1"); Thread p2 = new Thread(tul,"p2"); Thread p3 = new Thread(tul,"p3"); Thread p4 = new Thread(tul,"p4"); Thread p5 = new Thread(tul,"p5"); Thread p6 = new Thread(tul,"p6"); Thread p7 = new Thread(tul,"p7"); Thread p8 = new Thread(tul,"p8"); Thread p9 = new Thread(tul,"p9"); Thread p10 = new Thread(tul,"p10"); p1.start(); p2.start(); p3.start(); p4.start(); p5.start(); p6.start(); p7.start(); p8.start(); p9.start(); p10.start(); } } class Tunnel implements Runnable{ private int crossedNum = 0; //override public void run(){ Cross(); }
//同步函数--同步锁为this,即main()中创建的tul。
public synchronized void Cross(){ try { Thread.sleep(5000); } catch (InterruptedException e) { e.printStackTrace(); } crossedNum++; System.out.println(Thread.currentThread().getName()+" have Crossed the tunnel !"+" This is "+crossedNum+"th"); } }
<console>:
相关文章推荐
- MyEclipse下复制的web项目
- java数组排序
- Java Socket 之参数测试-backlog(一)
- 通过java获取音频文件信息(专辑、歌手、歌名、)
- MyEclipse优化编码时项目加载慢的问题
- java数组查找
- java中堆内存和栈内存详解
- Java学习之路0716(三)
- java基础第七天
- java基础 类与对象 构造器 static
- java基础第六天
- springmvc 接收对象 滴灌摘要
- java 判断一个字串中的字符全是字母
- eclipse使用技巧
- eclipse使用技巧
- Java将时间加5分钟的方法
- Java中静态代码块、非静态代码块、构造函数的执行顺序与作用
- JAVA集合操作的利器:CollectionUtils
- Java Collections.sort 用法
- Java中Json字符串直接转换为对象(包括多层List集合)