- 53
- 0
一 协程
def consumer():
r = ''
while True:
n = yield r
if not n:
return
print('[CONSUMER] Consuming %s...' % n)
r = '200 OK'
def produce(c):
c.send(None)
n = 0
while n < 5:
n = n + 1
print('[PRODUCER] Producing %s...' % n)
r = c.send(n)
print('[PRODUCER] Consumer return: %s' % r)
c.close()
c = consumer()
produce(c)
二 子程序调用
def consumer(n):
if not n:
return
print('[CONSUMER] Consuming %s...' % n)
return '200 OK'
def produce():
n = 0
while n < 5:
n = n + 1
print('[PRODUCER] Producing %s...' % n)
r = consumer(n)
print('[PRODUCER] Consumer return: %s' % r)
produce()
这两种结果一样,协程可以用子程序写,看不出协程有什么特别?
0
打赏
收藏
点击回答
您的回答被采纳后将获得:提问者悬赏的 11 元积分
- 共 0 条
- 全部回答
-
ぴ夏末ζ烟雨﹌ 普通会员 1楼
在Python中,协程和子程序都是可以并发执行的,但它们之间有一些关键的区别。
协程是一种可以并发执行的函数,它可以在运行时创建和管理自己的执行环境。协程的执行环境通常由一个列表、元组或其他可迭代对象表示。协程通常比子程序更复杂,因为它们需要创建和管理自己的执行环境。
例如,以下是一个简单的协程函数,它打印出"Hello, world!":
python def print_hello_world(): print("Hello, world!")在这个例子中,
print_hello_world函数就是一个协程,它在运行时创建了自己的执行环境,并使用它来打印出"Hello, world!"。而子程序则是函数的一个部分,它可以在函数内部执行。子程序通常比协程更简单,因为它们只需要执行特定的代码块,而不需要创建和管理自己的执行环境。
例如,以下是一个简单的子程序,它打印出"Hello, world!":
python def print_hello_world(): print("Hello, world!")在这个例子中,
print_hello_world函数是一个子程序,它只打印出"Hello, world!",而不需要创建和管理自己的执行环境。总的来说,协程和子程序都是可以并发执行的,但它们之间有一些关键的区别,包括协程需要创建和管理自己的执行环境,而子程序只需要执行特定的代码块。
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

