java多线程练习题
发布时间: 2021-03-30 00:40:28
『壹』 这是java多线程编程练习的两道题目!!!求高手解决!!!拜托了!!!
packagecom.kevin2014.thread;
importjava.util.Random;
publicclassAtmosphereTest{
publicstaticvoidmain(String[]args){
Atmosphereatmosphere=newAtmosphere();
=newAtmosphereSensor(atmosphere);
Computercomputer=newComputer(atmosphereSensor);
newThread(atmosphereSensor).start();
newThread(computer).start();
}
}
/**
*传感器1.5秒/次读取大气信息
*
*@author795829
*
*/
{
privateAtmosphereatmosphere;
publicAtmosphereSensor(Atmosphereatmosphere){
this.atmosphere=atmosphere;
}
publicAtmospheregetAtmosphere(){
returnatmosphere;
}
publicvoidsetAtmosphere(Atmosphereatmosphere){
this.atmosphere=atmosphere;
}
@Override
publicvoidrun(){
try{
inti=1;
while(true){
Thread.sleep(500);
atmosphere.setHumidity(newRandom(System.currentTimeMillis()).nextFloat());
Thread.sleep(500);
atmosphere.setTemperature(newRandom(System.currentTimeMillis()).nextFloat());
Thread.sleep(500);
atmosphere.setWind(newRandom(System.currentTimeMillis()).nextFloat());
System.out.println("-----"+i+++"传感器数据温度="+atmosphere.getTemperature()+",湿度="
+atmosphere.getHumidity()+",风速="+atmosphere.getWind());
}
}catch(Exceptione){
e.printStackTrace();
}
}
}
/**
*计算机2秒/次读取传感器数据
*
*@author795829
*
*/
{
private;
publicComputer(){
this.atmosphereSensor=atmosphereSensor;
}
(){
returnatmosphereSensor;
}
publicvoidsetAtmosphereSensor(){
this.atmosphereSensor=atmosphereSensor;
}
@Override
publicvoidrun(){
try{
for(inti=1;i<=50;i++){
Thread.sleep(2000);
System.out.println(i+"计算机数据温度="+atmosphereSensor.getAtmosphere().getTemperature()
+",湿度="+atmosphereSensor.getAtmosphere().getHumidity()+",风速="
+atmosphereSensor.getAtmosphere().getWind());
}
}catch(Exceptione){
e.printStackTrace();
}
}
}
classAtmosphere{
privatefloattemperature;
privatefloathumidity;
privatefloatwind;
publicfloatgetTemperature(){
returntemperature;
}
publicvoidsetTemperature(floattemperature){
this.temperature=temperature;
}
publicfloatgetHumidity(){
returnhumidity;
}
publicvoidsetHumidity(floathumidity){
this.humidity=humidity;
}
publicfloatgetWind(){
returnwind;
}
publicvoidsetWind(floatwind){
this.wind=wind;
}
}
『贰』 一道java多线程试题
是B,不要被答案给忽悠了
『叁』 简单的JAVA多线程题
1, 如果 条件是a 的话,它返回的结果是不稳定的,不能给出准确的运行结果,因为双回线程同时运作的话是一种抢答占试的运作,看CPU线程抢占的不同导致结果不同,
如果b 条件,因为使用了sleep() 在执行时候会执行相应的休眠,则会是结果确定唯一,,
如果c 不同优先级的话,大腿都能想明白的事情,何必多说呢, :),
PS: 其实优先级这个东东貌似不起很大的作用 :(,
2,。。。。