操作系统【协程与线程的区别】
2023-12-28 17:00:32
协程与线程的区别
-
协程(coroutine)是一种程序运行的方式,即在单线程里多个函数并发地执行
-
协程涉及到函数的切换, 多线程涉及到线程的切换, 所以都有执行上下文, 但是协程不是被操作系统内核所管理, 而完全是由程序所控制(也就是在用户态执行), 这样带来的好处就是性能得到了很大的提升, 不会像线程那样需要在内核态进行上下文切换来消耗资源,因此协程的开销远远小于线程的开销。
-
协程适合执行大量的I/O 密集型任务, 而线程在这方面弱于协程。
-
同一时间, 在多核处理器的环境下, 多个线程是可以并行的,但是运行的协程的函数却只能有一个,其他的协程的函数都被suspend, 即协程是并发的。
-
由于协程在同一个线程中, 所以不需要同步方法比如互斥锁、信号量等,并且不需要来自操作系统的支持。
-
在协程之间的切换不需要涉及任何系统调用或任何阻塞。
-
通常的线程是抢先式(即由操作系统分配执行权), 而协程是由程序分配执行权。
文章来源:https://blog.csdn.net/weixin_46645965/article/details/135272256
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!