协程和线程的区别
来源:互联网 发布:c语言基本数据类型长度 编辑:程序博客网 时间:2024/04/29 14:45
栈容量, 线程默认都是2M,这个固定值对于小型的方法来说有点浪费,而对于永远大数据量的方法是远远不够的。 协程的栈初始大小是2K, 很轻便,开销不大,按需自动增长和减少栈内存。最大可以达到1GB.
调度问题。 线程的调度是由内核调度器来调度的,内核调度器每隔几毫秒进行调度,终止当前线程,保存其状态,然后切换到另一个线程。这样的一次操作叫做线程的上下文切换,意思就是把当前线程的状态保存在内存中,然后把另一个线程从内存中恢复回来。这个过程是比较耗时的。
在go里面,她的运行时环境会调度m个协程到n个OS线程,这种方法叫做m:n scheduling。
并且她把协程的调度权转给了程序本身,也就是说写程序的我们可以自己去控制协程的阻塞和销毁。
这样就免去了把协程保存在内存(切换到内核态), 效率大大提升了。可以说协程是用户态的线程。
阅读全文
0 0
- Unity协程和线程的区别
- 进程和线程、协程的区别
- 协程和线程的区别
- 线程,进程,协程之间的联系和区别
- 主线程和子线程的区别
- 主线程和子线程的区别
- 前台线程和后台线程的区别
- 线程对象和线程的区别
- 前台线程和后台线程的区别
- 内核线程和用户线程的区别
- 线程句柄和线程ID的区别
- daemon线程和user线程的区别
- 内核线程和用户线程的区别
- 线程安全和线程不安全的区别
- 线程对象和线程的区别
- 用户线程和内核线程的区别
- 前台线程和后台线程的区别
- 同步线程和异步线程的区别
- 牛客网编程-合并两个有序链表(java)
- qsort与sor
- 83. Remove Duplicates from Sorted List
- hdu1272 小希的迷宫(并查集判环)
- Qt学习之路(25): QPainter(续)
- 协程和线程的区别
- Django 浏览器打开警告Not Found: /favicon.ico
- 由中序后序构建二叉树 Java实现
- 数据挖掘竞赛
- 服务器同时处理多个客户示例
- JQuery_过滤器
- common.collect.ImmutableMap字典
- R语言一键爬取英格兰足球超级联赛16-17赛季所有比分(基于RCurl)
- 流水灯指示跑