Java 十人过山洞
来源:互联网 发布:javascript 观察者模式 编辑:程序博客网 时间:2024/05/17 08:01
编写多线程程序,模拟多个人通过一个山洞。这个山洞每次只能通过一个人,每个人通过山洞的时间为2秒(sleep)。随机生成10个人,都要通过此山洞,用随机值对应的字符串表示人名,打印输出每次通过山洞的人名。
提示:利用线程同步机制,过山洞用一条输出语句表示,该输出语句打印输出当前过山洞的人名,每个人过山洞对应一个线程,哪个线程执行这条输出语句,就表示哪个人过山洞。
import java.util.Random;public class GstThread implements Runnable{String name;public static void main(String[] args) {for(int i=0;i<10;i++){GstThread gt=new GstThread(getRandomString(5));Thread t=new Thread(gt);t.start();}}GstThread (String name){this.name=name;}public static String getRandomString(int length) { String base = "vbgfhdfvbtfbjnvcdshvbggbvcjgbht"; Random random = new Random(); StringBuffer sb = new StringBuffer(); for (int i = 0; i < length; i++) { int number = random.nextInt(base.length()); sb.append(base.charAt(number)); } return sb.toString(); } @Overridepublic synchronized void run() {try { Thread.sleep(2000); } catch (Exception e) { e.printStackTrace(); }finally { System.out.println(name+"通过了山洞。"); } }}
结果图:
阅读全文
0 0
- Java 十人过山洞
- 线程--十人过山洞
- java任务--过山洞多线程
- Java练习题23 过山洞
- 过山洞
- 过山洞
- Java多线程模拟多人过山洞
- 过山洞问题
- 过山洞(多线程)
- Java作业-十个人过山洞(多线程)
- 多线程——过山洞
- 山洞
- 线程同步(多人过山洞)
- 第九次作业,过山洞(线程)
- 多线程之模拟多人过山洞
- 十年·十人
- 十年·十人
- verilog之十人表决器
- 第一次写博客
- 普通型母函数模板
- 最长递增子序列
- 找点(贪心)
- python 3.6 ,vs code 下import win32gui失败解决方案
- Java 十人过山洞
- 剑指_调整数组顺序使奇数在前偶数在后
- 机房收费系统-上机操作续
- Spring ldap ODM
- Android启动apk时主activity多次调用
- tar.gz
- React中bind以及this处理,获取当前操作的元素
- 【Idea】windows 10 使用idea ctrl+alt+↑ ↓ 快捷键,屏幕翻转
- 设计模式学习笔记(二)单例模式