package
jiangning.c21.ex;
import
java.util.Random;
import
java.util.concurrent.ExecutorService;
import
java.util.concurrent.Executors;
import
java.util.concurrent.TimeUnit;
/**
* Java编程思想 第四版 c21 并发
* 练习6:创建一个任务,它将睡眠1到10秒之间的随机数量的时间,
* 然后显示它的显示时间并退出,创建并运行一定数量的这样任 务。
*
*/
public
class
Exercise6
implements
Runnable {
private
int
sleepTime
;
public
Exercise6(
int
sleepTime){
this
.
sleepTime
= sleepTime;
}
@Override
public
void
run() {
try
{
TimeUnit.
MILLISECONDS
.sleep(
sleepTime
);
System.
out
.println(
"休眠时间长度="
+
sleepTime
);
}
catch
(InterruptedException e) {
e.printStackTrace();
}
}
public
static
void
main(String[] args) {
ExecutorService exec = Executors. newCachedThreadPool();
for
(
int
i=1; i<10; i++){
Random random =
new
Random();
exec.execute(
new
Exercise6(random.nextInt(10)*1000));
}
Thread. yield();
exec.shutdown();
}
}
/**
* 运行结果
休眠时间长度=2000
休眠时间长度=3000
休眠时间长度=4000
休眠时间长度=4000
休眠时间长度=4000
休眠时间长度=5000
休眠时间长度=5000
休眠时间长度=6000
休眠时间长度=7000
*/