Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python异步IO简单示例_Python_Multiprocessing_Python Asyncio_Python 3.5_Event Driven - Fatal编程技术网

Python异步IO简单示例

Python异步IO简单示例,python,multiprocessing,python-asyncio,python-3.5,event-driven,Python,Multiprocessing,Python Asyncio,Python 3.5,Event Driven,我正在试验python的异步IO协议。我从官方文件中找到了它,想稍微修改一下,复制一下它的beahviour。因此,我编写了以下两个脚本: # file: get_rand.py from random import choice from time import sleep def main(): print(choice('abcdefghijklmnopqrstuvwxyz')) sleep(2) if __name__ == '__main__': main(

我正在试验python的异步IO协议。我从官方文件中找到了它,想稍微修改一下,复制一下它的beahviour。因此,我编写了以下两个脚本:

# file: get_rand.py
from random import choice
from time import sleep

def main():
    print(choice('abcdefghijklmnopqrstuvwxyz'))
    sleep(2)

if __name__ == '__main__':
    main()
以及:

当我运行async_test.py时,我得到以下输出:

$ python3.5 async_test.py 
Event loop started
Process created
Getting pipes...
Protocol initialised
Waiting for child to exit...
Data received
它就这么挂着

如果我取消注释
pipe\u connection\u lost
方法,则输出如下:

$ python3.5 async_test.py 
Event loop started
Process created
Getting pipes...
Protocol initialised
Waiting for child to exit...
Data received
Pipe connection lost for the following reason:
None

但这个过程仍然悬而未决。我认为正在发生的是,由于某种原因,子进程(
get\u rand.py
)关闭管道(如上面的输出所示),但不会终止,以便父进程可以从
退出退出退出退出。考虑到我的代码大多是从python文档中的一个示例复制粘贴的,我真的不理解这种行为背后的原因。

Change
def subprocess\u exited(self):

$ python3.5 async_test.py 
Event loop started
Process created
Getting pipes...
Protocol initialised
Waiting for child to exit...
Data received
Pipe connection lost for the following reason:
None