要泡好一壶茶需要许多流程,比如洗水壶,洗茶壶,洗茶杯,拿茶叶,烧开水等过程,如果依次进行这些操作,会造成许多不必要的耗时。因此需要同时进行一些操作,我们可以用java多线程来模拟。代码示例如下:
public class DrinkTea {
public static void main(String[] args) {
Thread t1=new Thread("老王"){
@Override
public void run() {
System.out.println(this.getName()+"洗水壶");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(this.getName()+"烧开水");
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
};
Thread t2=new Thread("小李"){
@Override
public void run() {
try {
System.out.println(this.getName()+"洗茶壶");
Thread.sleep(1000);
System.out.println(this.getName()+"洗茶杯");
Thread.sleep(2000);
System.out.println(this.getName()+"拿茶叶");
Thread.sleep(1000);
t1.join();
System.out.println("泡茶");
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
};
long startTime=System.currentTimeMillis();
t1.start();
t2.start();
try {
t1.join();
t2.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
long endTime=System.currentTimeMillis();
System.out.println("所有流程一共耗时"+(endTime-startTime)/1000+"秒");
}
}
结果如下: