首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
请你说说线程和协程的区别
[问答题]
请你说说线程和协程的区别
查看答案及解析
添加笔记
求解答(0)
邀请回答
收藏(167)
分享
纠错
26个回答
添加回答
29
至今0offer选手
线程消耗操作系统资源,协程可以靠编译语言实现,因此称为用户态线程,量级更轻 线程并行,协程并发 线程同步,协程异步 线程抢占式,协程非抢占式,需要手动切换 线程上千,协程上万
发表于 2022-07-28 20:47:26
回复(0)
10
别说天会黑
线程是cpu调度的基本单位,线程切换需要消耗很大的资源。协程是轻量级线程,是一种用户态线程
发表于 2022-06-27 09:00:34
回复(0)
2
cppers
1、线程是操作系统的资源,线程的创建、切换、终止都会造成资源的浪费,而协程是靠编译语言来实现的,所以协程也被称作用户态线程 2、线程是并行的,协程是并发的。 3、线程同步,协程异步 4、线程抢占式,协程非抢占式,需要手动切换
发表于 2023-06-13 16:50:10
回复(0)
2
毛克成
线程切换需要上下文切换,协程切换不需要上下文切换,只在用户态进行切换
发表于 2022-07-05 21:12:48
回复(3)
1
代码要笑着写
在I/O密集型任务中协程比较合适,因为协程运行在线程之上,在线程中某个任务被I/O资源阻塞的时候可以调用另一个协程进行运行所以该线程不需要被阻塞,而且协程只运行在用户态,切换的代价很小
编辑于 2024-03-21 15:00:01
回复(0)
1
牛客275374132号
线程时操作系统的资源,线程的创建,切换,停止等都非常消耗资源,而创建协程不需要调用操作系统的共功能
发表于 2023-08-19 12:38:18
回复(0)
1
羊翻翻会幸福的
1. 线程是操作系统的资源,线程的创建、切换、停止等都非常消耗资源,而创建协程不需要调用操作系统的功能,编程语言自身就能完成,所以协程也被称为用户态线程,协程比线程轻量很多; 2.线程是并行的,而协程是并发的 3.线程进程都是同步机制,而协程是异步的。 4.线程是抢占式的,而协程是非抢占的,同一时间只有一个协程拥有运行权
发表于 2023-07-25 15:28:44
回复(0)
0
bulijiojio
线程是内核态线程 切换需要进入内核态 由内核调度 阻塞时 内核回调度切换线程 协程是用户态线程 完全由程序决定 协程由程序切换 是并发
发表于 2025-06-01 22:33:58
回复(0)
0
Aurora0067
协程是一种用户空间的轻量级线程,由程序自己控制,在执行过程中可以暂停和恢复,属于非抢占式的,切换时只需要保存少量的上下文,开销极小,可以实现高效的并发。 区别:线程是由内核控制的、协程由程序自己控制。 进程和线程是同步的,而协程是异步的 线程在多核环境下可以由系统分配到多个核心处理器上并行执行,而协程是由程序控制的,没有由操作系统提供的并行机制,一般并发执行。 线程是抢占式的,协程是非抢占式的,需要用户自己释放使用权来切换到其他协程。
发表于 2025-04-22 18:17:54
回复(0)
0
涨薪一大步
线程的创建和终止都需要消耗cpu资源,协程运行在线程之上,切换也只是在用户态进行切换,不会消耗过多的资源
发表于 2025-04-21 16:37:29
回复(0)
0
觉醒火龙果很想五点下课
1、协程是轻量级的线程,不需要操作系统的功能,由代码自身完成,创建切换停止耗资源少 2、协程通过单线程切换(切换执行)实现并行,是异步的; 3、线程是抢占式的,协程是非抢占式,需要用户自己释放; 4、线程开辟数量远小于协程
发表于 2025-03-22 18:07:15
回复(0)
0
yxqf
- 线程消耗系统资源,而协程靠编程语言实现,也叫用户态线程,更加轻量级。 - 线程多核环境下可以并行,而协程是并发 - 线程是同步执行的,而协程是异步执行 - 线程是抢占,协程是非抢占,需要手动切换 - 线程量级限制在上千,而协程可达上万
发表于 2025-02-25 10:45:12
回复(0)
0
103k
1.线程是操作系统的资源,线程的创建,切换,停止都非常消耗资源,而协程不需要操作系统参与,由代码就可以实现,所以协程被称为用户态线程,协程比线程轻量化很多 2.在多核下线程可以实现真正意义上的并行,而协程是为并发而生的 3.线程进程都是同步机制,而协程是异步机制 4.线程是抢占式的,而协程是非抢占式的,所以用户需要手动释放使用权来切换到其他协程,因此同一时间只有一个协程拥有使用权,相当于单线程的能力 5.操作系统对线程的开辟数量在千的级别,对协程的开辟数量在万的级别
发表于 2024-09-23 23:02:45
回复(0)
0
努力奋斗的新青年
协程又称为轻量级线程,属于用户态,可以通过yield挂起,resume重新执行
发表于 2024-09-23 09:37:16
回复(0)
0
之昂_
1. 线程是操作系统的资源,线程的创建、切换、停止等都非常消耗资源,而创建协程不需要调用操作系统的功能,编程语言自身就能完成,所以协程也被称为用户态线程,协程比线程轻量很多; 2. 线程在多核环境下是能做到真正意义上的并行,而协程是为并发而产生的; 3. 一个具有多个线程的程序可以同时运行几个线程,而协同程序却需要彼此协作的运行; 4. 线程进程都是同步机制,而协程则是异步; 5. 线程是抢占式,而协程是非抢占式的,所以需要用户自己释放使用权来切换到其他协程,因此同一时间其实只有一个协程拥有运行权,相当于单线程的能力; 6. 操作系统对于线程开辟数量限制在千的级别,而协程可以达到上万的级别
发表于 2024-07-02 14:51:38
回复(0)
0
Jonny99
协程是一种用户态的轻量级线程,它的调度完全由用户控制;线程是操作系统调度的基本单位
发表于 2024-06-24 10:52:35
回复(0)
0
永远的i
线程消耗操作系统资源,协程靠编译语言实现;协程是非抢占的,需要手动切换;
发表于 2024-06-24 09:44:57
回复(0)
0
有气魄的修勾上岸了
线程是操作系统资源,切换需要系统开销,协程是用户态资源,切换无需系统开销;线程可以是并行的,协程是并发的;线程是抢占式,协程是非抢占式;线程间需要同步机制,协程不需要
发表于 2024-06-12 22:14:07
回复(0)
0
Lin_S
线程是程序执行的最小单位,协程是轻量级线程,切换不需要上下文,用户态切换便可;线程抢占式,协程非抢占式
编辑于 2024-04-25 14:06:46
回复(0)
0
自由的野指针黑化版
携程本质是函数的挂起和回复,只有cpu寄存器内容的切换,而先生切换涉及到栈
编辑于 2024-03-03 13:21:15
回复(0)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
操作系统
上传者:
real1993
难度:
26条回答
167收藏
2087浏览
热门推荐
相关试题
有两个N*N的矩阵A和B,想要在P...
阿里巴巴
操作系统
评论
(38)
来自
中国电信2025春招笔试...
请编写实现malloc()内存分配...
微软
C++
操作系统
评论
(3)
如图 1 表示使用快表(页表)的虚...
编程基础
评论
(1)
MySQL中执行 SELECT I...
SQL
评论
(1)
订单表order_table全部记...
查找
数据库
数据分析
SQL
评论
(2)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题