首页 新闻 会员 周边 捐助

python 编程中 什么场景下不能使用协程, 而应该使用多线程

0
悬赏园豆:15 [待解决问题]

前几天去面试,有一个面试官问了我一个问题,在都是io型的任务前提下, 什么情况下只能使用多线程, 而不能使用协程. 以往确实没有考虑过这个问题,网上似乎也全都没有这方面的讨论. 有那个大牛知道的么? 能否告知一下,多谢了!

lowmanisbusy的主页 lowmanisbusy | 初学一级 | 园豆:189
提问于:2019-01-28 11:27
< >
分享
所有回答(3)
0

"什么情况下只能使用多线程, 而不适合使用协程"
感觉这句话有点问题,“不适合”不等于“不能“,改成这样比较通顺:"什么情况下只能使用多线程, 而不能使用协程"或”什么情况下适合使用多线程, 而不适合使用协程”。

多线程调用的是操作系统提供的多线程接口,协程其实是在一个线程里执行的,只是可以中断。我个人感觉是如果真的要同时并行做i/o操作,还是多线程好些。如果是一些简单的异步操作,用协程。(没写过多少python代码,仅供参考)

会长 | 园豆:12463 (专家六级) | 2019-01-28 12:01

很多服务,处理i/o类型的任务也都是采用类似协程这样的方式去进行处理, redis就是单线程的. 协程也是解决c10k问题的一个很好的方向, 所以这里应该不是简单的异步操作才适合使用协程

支持(0) 反对(0) lowmanisbusy | 园豆:189 (初学一级) | 2019-02-03 23:27

@lowmanisbusy: 那应该是什么情况下?你打听到了吗

支持(0) 反对(0) 会长 | 园豆:12463 (专家六级) | 2019-02-14 11:07
0
ycyzharry | 园豆:25683 (高人七级) | 2019-01-28 15:26

这些博客只是说明协程的原理, 这些我也都知道, 但是我实在是想不出来, 只能用线程, 而不能使用协程的场景出来

支持(0) 反对(0) lowmanisbusy | 园豆:189 (初学一级) | 2019-02-03 23:28
0

不解, 不管他了

lowmanisbusy | 园豆:189 (初学一级) | 2019-03-18 19:23
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册