1.编写多线程应用程序,模拟多个人通过一个山洞的模拟。这个山洞每次只能通过一个人,每个人通过山洞的时间为5秒,随机生成10个人,同时准备过此山洞,显示一下每次通过山洞人的姓名。

package com.hanqi.xc;

import java.util.LinkedHashSet;
import java.util.Random;
import java.util.Set;

public class GuoShanDong implements Runnable {

    private static int deng=0;
    @Override
    public void run() {

                deng= deng+5000;

                try
                {
                    Thread.sleep(deng);

                } catch (InterruptedException e)
                {
                    // TODO 自动生成的 catch 块
                    e.printStackTrace();
                }

                System.out.println(Thread.currentThread().getName()
                    +" 过山洞");

    }
    public static void main(String[] args) {

        String ary[] ={"赵","钱","孙","李","周","吴","郑","王","冯","陈"};

        GuoShanDong gsd = new GuoShanDong();

        Set<Integer> set=new LinkedHashSet<Integer>();
        while(true){
        if(set.size() == 10){
        break;
        }

        //乱序排列(随机)
        int a=(int) (Math.random()*10);

        set.add(a);
        }
        for(int b:set){

        Thread th = new Thread(gsd, ary[b]);

         th.start();
        }            

       }
        

时间: 2024-10-05 15:35:01

1.编写多线程应用程序,模拟多个人通过一个山洞的模拟。这个山洞每次只能通过一个人,每个人通过山洞的时间为5秒,随机生成10个人,同时准备过此山洞,显示一下每次通过山洞人的姓名。的相关文章

编写Java应用程序。首先,定义一个时钟类——Clock,它包括三个int型 成员变量分别表示时、分、秒,一个构造方法用于对三个成员变量(时、分、秒) 进行初始化,还有一个成员方法show()用于显示时钟对象的时间。其次,再定义 一个主类——TestClass,在主类的main方法中创建多个时钟类的对象,使用这 些对象调用方法show()来显示时钟的时间。

package com.homework.zw; public class Clock { String hour; String minute; String second; Clock(String h,String m, String s) { hour=h; minute=m; second=s; } void show() { System.out.println("时间为:"+hour+"时"+minute+"分"+second+&q

.编写Java应用程序。首先,定义一个Print类,它有一个方法void output(int x),如果x的值是1,在控制台打印出大写的英文字母表;如果x的值是2,在 控制台打印出小写的英文字母表。其次,再定义一个主类——TestClass,在主类 的main方法中创建Print类的对象,使用这个对象调用方法output ()来打印出大 小写英文字母表。

package com.homework.zw; //类Print部分 public class Print1 { int x; void output() { if(x==1) { for(int i =65;i<=90;i++) { char a =(char) i; System.out.print(a); } } else if(x==2) { for(int i =97;i<=122;i++) { char a =(char) i; System.out.print(a); } }

Java千百问_02基本使用(012)_如何编写多线程Socket程序

点击进入_更多_Java千百问 1.如何编写多线程Socket程序 了解Socket看这里:Socket是什么 多线程Socket与单线程类似,只是使用了多线程的方式来管理连接,主线程负责接收连接,在接到连接后变创建新的线程,每个线程负责与自己的客户端进行通信. 了解单线程Socket看这里:如何编写单多线程Socket程序 与单线程Socket例子相比来说,服务端可以与多个客户端进行通信了,不过多线程频繁的创建与销毁便会带来很大的资源开销,而系统的网络资源等都是有限的.因此一般会引入线程池,可

//随机生成 10到20条数据 数据包含 用户名(5-10位的字母) 性别 年龄(1-100岁)

//随机生成 10到20条数据 数据包含 用户名(5-10位的字母) 性别 年龄(1-100岁)/*生成随机数的方法*/function random(min, max) { if (min < 0 || max < 0) { console.log("请输入大于0的数据"); return false } if (max == null) {//判断如果只传入一个参数 var max = min;//将参数设置为最大值 min = 0;//将最小值设置为零 } retur

shell &nbsp; 随机生成10个数,找出最大值

分析:随机生成10个数?  生成随机数,这里用RANDOM函数,我把生成的这10个数定义为一个数组array,定义MAX的初始值为array[0] 使用for循环进行与每一个元素的值进行比较,如果有比array[0]大的,假如array[3]比array[0]大,那么就把array[3]的值赋值给MAX,遍历比较每个数组元素,最后输出MAX的值即可! 看看执行情况....                      文本 #!/bin/bash #Author:wangergui       Em

随机生成 10 个不重复的数组成数组

// todo: 随机生成 10 个 20~200 之间的随机整数组成 length 为 10 的数组var arr = [];while(arr.length < 10){    var num = Math.round(180*Math.random()) + 20;    arr.push(num);}arr; // todo: 随机生成 10 个 20~200 之间的随机整数组成 length为 10 且从小到大排序的数组var arr = [];while(arr.length <

【JavaScript】随机生成10个0~100的数字

随机生成10个0~100不重复的数字(包含0和100): 需要用到的知识点:随机数 去重 下面放代码 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <script> // 定义声明一个数组, 放随机生成的10个数字 var arr = []; for(var

使用 acl 库编写多线程应用程序

在 <利用ACL库开发高并发半驻留式线程池程序> 中介绍了如何使用 C 版本的 acl 线程库编写多线程程序,本文将会介绍如何使用 C++ 版本的 acl 线程库编写多线程程序,虽然 C++ 版 acl 线程库基于 C 版的线程库,但却提供了更为清晰简洁的接口定义(很多地方参考了 JAVA 的线程接口定义).下面是一个简单的使用线程的例子: #include "acl_cpp/lib_acl.hpp" ////////////////////////////////////

随机生成10个数,填充一个数组,然后用消息框显示数组内容,接着计算数组元素的和,将结果也显示在消息框中

设计思路: 1.使用random随机产生10个数,存入数组中 2.使用for循环把结果存入一个String对象中 3.使用for循环求出数组中所有元素的和 4.使用JTextArea和JOptionPane输出数组的内容 程序流程图: 源程序代码: import javax.swing.*; public class InitArray { public static void main( String args[] ) { String output = ""; int num=0;