执行绪与同步、非同步
本篇是统整网路上各资源节录而成,如有观念错误的地方,还请大大们多多鞭策。
名词解释
行程/程序(process):
当一个程式(computer program)被执行,作业系统就会为这个程式生成一个程序,以管理该程式执行过程中记忆体和系统资源的分配。
执行绪(thread):
执行绪是构成程序的小单元,一个程序,至少包含一个或多个执行绪;CPU会进行排成(Scheduling),并依照优先级数,给予不同的执行绪相对应的运算资源。
单执行绪:描述对象为CPU系统或是浏览器系统运作的方式,代表该系统只能一个任务一个任务依序完成,遇到比较耗时的任务时,还未执行的任务就会处于等待状态,一定要等到前面的任务完成了,才会往后执行。
多执行绪:指CPU可以同时实现多个执行绪并行执行的技术;或是,作业系统也可以通过快速的在不同执行绪之间进行切换,由于时间间隔很小,来给使用者造成一种多个执行绪同时执行的假象。
同步:描述对象为程式语言本身的运作方式,以javascript来说,程式码会是依次执行,不会突然跳掉下个程式码。
例子:



参考资料:
1.* From Wikipedia-Process (computing)*:https://en.wikipedia.org/wiki/Process_(computing)
2. JavaScript 深入浅出 Event Loop、Job Queue:https://shawnlin0201.github.io/JavaScript/JavaScript-Event-Loop-and-Job-Queue/
3. 如何理解单执行绪、多执行绪?如何选择多执行绪、多程序?:https://www.itread01.com/ixyfq.html
4. 以生活的例子说明单执行绪和多执行绪:https://codertw.com/%E7%A8%8B%E5%BC%8F%E8%AA%9E%E8%A8%80/432463/#outline__6
5. JavaScript - 单执行绪、同步与非同步:https://chiangyuchi.github.io/2019/02/09/2019-02-10/
6. JavaScript 单执行绪(Single Thread):https://hoyis-note.coderbridge.io/2021/05/17/javascript-%E5%96%AE%E5%9F%B7%E8%A1%8C%E7%B7%92-%E5%90%8C%E6%AD%A5%E5%92%8C%E9%9D%9E%E5%90%8C%E6%AD%A5/
7. 浅析 JS 中的 EventLoop 事件循环(新手向):https://segmentfault.com/a/1190000019313028
8. 异步程式设计与事件迴圈:https://eyesofkids.gitbooks.io/javascript-start-from-es6/content/part4/eventloop.html