炎热的夏天,一位少侠到客栈吃杯茶,客栈准备茶水有如下两种方式:
单线程
先擦桌子,花费3秒;
再准备茶水,花费3秒;
共花费6秒!
多线程
擦桌子和准备茶水同时进行,各自花费3秒(2个线程同时执行);
共花费3秒!
public static void main(String[] args) throws ExecutionException, InterruptedException {
long startTime = System.currentTimeMillis();
FutureTask<String> teaTask = new FutureTask<String>(() -> {
Thread.sleep(3000);
return "茶水小二:客官,茶水已备好......";
});
FutureTask<String> deskTask = new FutureTask<String>(() -> {
Thread.sleep(3000);
return "服务员:客官,桌子擦干净了......";
});
new Thread(teaTask, "备茶线程").start();
new Thread(deskTask,"清洁线程").start();
System.out.println(teaTask.get());
System.out.println(deskTask.get());
long endTime = System.currentTimeMillis();
System.out.println("客官请慢用!本次备茶和擦桌子共花费:"+(endTime-startTime)/1000+" 秒!");
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)