我目前没有运行 stackless,所以我不能自己尝试。
import stackless
ch1 = stackless.channel()
ch2 = stackless.channel()
ch1.send(ch2)
ch3 = ch1.receive()
ch2 和 ch3 那么是同一个 channel 吗?说:
text = "Hallo"
ch2.send(text)
assert text == ch3.receive()
这个功能让我想起了 Robert Pike(以 talk about Newsqueak 名气)在谷歌提供的一个 Plan9。在 Newsqueak 中,您可以通过 channel 发送 channel 。
最佳答案
是的。刚刚测试。
>>> import stackless
>>> ch1 = stackless.channel()
>>> def a():
... ch2 = stackless.channel()
... ch1.send(ch2)
... ch2.send("Hello")
...
>>> def b():
... ch3 = ch1.receive()
... print ch3.receive()
...
>>> stackless.tasklet(a)()
<stackless.tasklet object at 0x01C6FCB0>
>>> stackless.tasklet(b)()
<stackless.tasklet object at 0x01C6FAB0>
>>> stackless.run()
Hello
关于python - 在无堆栈 Python 中,您可以通过 channel 发送 channel 吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/638464/