当前位置:IT认证>软件水平

问题:[问答题]

[问答题] 简单应用题请完成下列Java程序:运行3个线程,每一个线程有自己的标志,用a,b,c表示,每个线程显示一个"Start"信息和一个"End"信息并且间隔地显示2个"Loop"信息(间隔变化为(0.5~2)秒之间的随机延迟)。程序运行结果如下:(注:由于时间间隔为随机数,所以,运行结果的顺序不惟一)a Startb Startc Startb Loopa Loopb Loopb Endc Loopa Loopa Endc Loopc E

  

参考答案:

myflag2_2=flag2_2++((int)((high-low+1)*(Math.random())))+low

  参考解析

本题主要考查线程的创建与同步和控制随机数产生范围的算法。解题关键是,熟悉线程的概念和使用,线程的同步控制,char类型数据的操作,以及熟悉随机数产生的方法Math.random(),并且能够进一步根据需要控制随机数产生的范围。在本题中,main()方法中创建3个线程,这3个线程使用obj2_2对象。线程调用start()方法来中断,使一个新的线程开始执行,并且调用run()方法。第1空,run()方法为自己设置一个线程的标志,并为下一个线程的使用增加这个标志值,由于此时线程正在处理中,因此在同步块中完成修改标志的语句放在同步块中。第2个空,通过low和high两个参数,控制产生随机数的范围,将基本的数学思想应用于程序设计中。

微信端