⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pressuretest.java~16~

📁 里面所含源码是本人平时做程序的一些实例
💻 JAVA~16~
字号:
package pressureTest;
import data.LoginData;
import java.util.*;
public class PressureTest {
    //创建记录线程生成变量
    int threadNum=0;
    //创建线程的总数变量
    int totalThread=500;
    //创建记录线程总运行时间变量
    long eachThreadCostTimes=0;
    //创建记录线程完成运行变量
    int threadDone=0;
    public static void main(String args[]){
        new PressureTest();
    }
    public PressureTest() {
        //创建等待类
        Object wait=new Object();
        //创建一个线程数组
        Thread[] threadls=new Thread[totalThread];
        //创建线程
        for(int i=0;i<totalThread;i++){
            threadls[i]=new Thread1(String.valueOf(i),wait,this);
            threadls[i].start();
        }
        while(true){
            if(threadNum==totalThread){
                    synchronized(wait){
                        //使所有线程同时运行
                        wait.notifyAll();
                    }

            //停止运行半秒钟
            try{
                Thread.sleep(5);


            }catch(Exception ex){

                    break;
                }
            }
        }
    }
    //每个线程完成运行后的方法
    public void threadDone(long eachThreadCostTime){
        //增加线程完成数
        threadDone++;
        eachThreadCostTimes+=eachThreadCostTime;
        if(threadDone==totalThread){
            System.out.println("线程运行的平均时间是"+eachThreadCostTimes/totalThread);
        }
    }
    public void increase(){
        threadNum++;
    }
}
//通过继承Thread类创建线程
class Thread1 extends Thread{
    PressureTest pressTest=null;
    Object wait=null;
    String name="";
    //线程的构造器
    Thread1(String name,Object wait,PressureTest pressTest){
        super(name);
        this.name=name;
        this.wait=wait;
        this.pressTest=pressTest;
    }
    //线程的运行方法
    public void run(){
        //记录线程的增加数
        pressTest.increase();;
        //使线程停止运行,等待其他线程完成创建
        synchronized(wait){
            try {
               wait.wait();
                System.out.print("线程等待!");
            }
            catch(Exception ex){ex.printStackTrace();}
        }
        //取得线程开始运行的时间
        long startTime=System.currentTimeMillis();
        LoginData loginData=new LoginData();
        //设置管理员的用户名,密码和用户类别
        String name="manasger";
        String password="password";
        int state=0;
        //测试用户,密码是否通过
        int actualReturn=loginData.checkUser(name,password,state);
        //取得线程结束的时间
        long endTime=System.currentTimeMillis();
        //计算线程的运行时间
        long eachThreadCostTime=endTime-startTime;
        if(actualReturn==0){
            System.out.println("线程"+this.name+"通过检验,运行的时间是"+eachThreadCostTime+"微秒");
        }else{
            System.err.println("线程"+this.name+"不能通过检验,运行的时间是"+eachThreadCostTime+"微秒");

        }
        //将线程运行的时间传回主类
        pressTest.threadDone(eachThreadCostTime);
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -