一、代码
function timeout(){//1s的执行任务
var start = new Date();
while(new Date() - start <= 1000){}
}
function jiedai1(){//同步接待
timeout();//点单任务
timeout();//做菜任务
timeout();//吃饭任务
timeout();//结账任务
timeout();//打扫任务
console.log("接待完成");
}
jiedai1();//客人1
jiedai1();//客人2
jiedai1();//客人3
//接待完三桌客人所需时间 3 * 1000 * 5;
function jiedai2(){//异步步接待
timeout();//点单任务
Promise.resolve().then(timeout);//做菜任务
Promise.resolve().then(timeout);//吃饭任务
Promise.resolve().then(timeout);//结账任务
Promise.resolve().then(timeout);//打扫任务
console.log("接待完成")
}
jiedai2();//客人1
jiedai2();//客人2
jiedai2();//客人3
//接待完三桌客人所需时间 3 * 1000 * 1;
二、解释
1、同步接待客人,我们接待第一个客人后,要等他点单、后厨做菜、客人吃饭、结账了收拾完卫生才能去服务下一桌客人,这样我们服务下一桌客人的时候已经等很久了,客人可能已经走了。
2、异步接待客人,我们接待第一个客人点完单之后,就可以为第二个客人点单了,其他的任务在另一个消息队列中等待,接待完客人,知道每桌客人都点什么菜了再继续为他们上菜、结账、打扫等一系列任务,可以使每桌客人都能被及时服务。