分享一个关于多线程的程序!!!

娟流韶华年 娟流韶华年 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
线程类部分:
public class CheThreadExt extends Thread {

private String nameString;

public CheThreadExt(String name) {
this.nameString = name;
}

public void run() {
int i = 0 ;
while (i < Constant.allTimeInteger) { //时间 秒
try {

Thread.currentThread().sleep(1000);

CarObj carObj = CarSynTable.getOneCar(nameString);

carObj.setTimeInteger(carObj.getTimeInteger() + 1);
carObj.setJuliInteger(carObj.getJuliInteger()
+ carObj.getSpeedInteger());

CarSynTable.putOneCar(nameString, carObj) ;

i ++ ;

} catch (InterruptedException e) {
e.printStackTrace();
}

}
}

/**
* 代码执行
*
* @param args
*/
public static void main(String[] args) {
CheThreadExt thread1 = new CheThreadExt("Car_A");

CheThreadExt thread2 = new CheThreadExt("Car_B");

CheThreadExt thread3 = new CheThreadExt("Car_C");

thread1.start();

thread2.start();

thread3.start();

for(int i = 0 ; i < 10 ; i ++){

try {
Thread.currentThread().sleep(5000);

CarSynTable.printCurCarsInfo() ;

} catch (InterruptedException e) {
e.printStackTrace();
}

}

System.exit(0);

}
}
HashMap以及对象初始化部分:

public class CarSynTable {

private static HashMap<String, CarObj> carCurStatus = new HashMap<String, CarObj>();

public static synchronized void putOneCar(String thredNm, CarObj carobj) {
carCurStatus.put(thredNm, carobj);
}

public static synchronized CarObj getOneCar(String thredNm) {

if(null == carCurStatus.get(thredNm)){
return new CarObj(RandomUtil.getSpeed(), 0, 0);
}

return carCurStatus.get(thredNm);
}

public static synchronized HashMap<String, CarObj> getCarCurStatus() {
return carCurStatus;
}

public static synchronized void printCurCarsInfo() {
Set set = getCarCurStatus().entrySet();
Map.Entry[] entries = (Map.Entry[]) set.toArray(new Map.Entry[set.size()]);
for (int i = 0; i < entries.length; i++) {
CarObj carobj = (CarObj) entries[i].getValue();
System.out.println("CarName : " + entries[i].getKey().toString()
+ ", speed : " + carobj.getSpeedInteger() + ", time : "
+ carobj.getTimeInteger() + " , juli : "
+ carobj.getJuliInteger() + " !");
}
}
}

public class CarObj {

private Integer speedInteger = 0; // 速度

private Integer juliInteger = 0; // 距离

private Integer timeInteger = 0;// 时间

public CarObj() {

}
/**
*
* @param speed 米/秒
* @param juli 米
* @param time 秒
*/
public CarObj(Integer speed, Integer juli, Integer time) {
speedInteger = speed ;

juliInteger = juli ;

timeInteger = time ;
}

public Integer getSpeedInteger() {
return speedInteger;
}

public void setSpeedInteger(Integer speedInteger) {
this.speedInteger = speedInteger;
}

public Integer getJuliInteger() {
return juliInteger;
}

public void setJuliInteger(Integer juliInteger) {
this.juliInteger = juliInteger;
}

public Integer getTimeInteger() {
return timeInteger;
}

public void setTimeInteger(Integer timeInteger) {
this.timeInteger = timeInteger;
}

}
...全文

相关推荐

评论 11
收藏 已收藏
分享
返回顶部
娟流韶华年
Java SE 62,620 成员 307,251 内容