子进程无法从标准输入读取数据
每个process对象最多只能调用一次start()方法,join([timeout])方法会阻塞调用process对象的进程,直到timeout时间超时,或者process进程退出。如果timeout设置为None,则无超时时间。对于linux操作系统的进程管理,父进程会等待子进程退出,并收回子进程的资源,然后父进程再退出。如果父进程先于子进程退出,则子进程会被init进程接管。如果父进程没有退出也没有回收子进程资源,则子进程会一直停留在僵死状态。这里join方法就是阻塞父进程,等待子进程执行完毕。
如果在子进程里面要接受标准输入(如调用raw_input函数),这时候会有问题。因为标准输入是被父进程占用,因此这里子进程无法从标准输入读取数据。
一个解决办法是将标准输入描述符,传入子进程函数:
from multiprocessing import Process
import sys, os
import time
def intask(x, fileno):
sys.stdin = os.fdopen(fileno)
while True:
in_char = raw_input("Enter to continue, Q to quit: ")
if in_char.upper() == 'Q':
break
print x * x
if __name__ == '__main__':
fn = sys.stdin.fileno()
arg = 5
p = Process(target = intask, args = (arg, fn))
p.start()
p.join()
转载于:https://blog.51cto.com/smileyouth/1903461
子进程无法从标准输入读取数据相关推荐
- lunix 习题 设计一个程序 cuts,它由标准输入读取数据...
设计一个程序 cuts,它由标准输入读取数据,获取由第一个参数 n 和第二个参数 m 所限定范围的数据,n 和 m 都是整数,即从输入的字符串中抽取第 n 个字符至第 m 个字符之间的所有字符(包括这 ...
- python从标准输入读取数据_在PYTHON中如何从标准输入读取内容stdin
Python有几种方法来读取标准输入的数据. 1.sys.stdin sys.stdin提供了read()和readline()函数,如果想按一行行来读取,可以考虑使用它:import sys lin ...
- C和指针之动态内存分配(读取范围在1和标准输入读取的size之前每个数据出现的次数)
1.问题 读取范围在1和标准输入读取的size之前每个数据出现的次数 2.代码实现 #include <stdio.h> #include <stdlib.h> #includ ...
- 笔记1-3: 从标准输入读取命令并执行
从标准输入读取命令并执行: #include <apue.h> #include <unistd.h> #include <sys/wait.h> int main ...
- xcode 不能读取键盘输入的汉字_C++:cin从控制台读取数据时的结束符
cin 可以用来从键盘输入数据:将标准输入重定向为文件后,cin 也可以用来从文件中读入数据.在输入数据的多少不确定,且没有结束标志的情况下,该如何判断输入数据已经读完了呢? 从文件中读取数据很好办, ...
- Java从控制台中读取数据完全攻略
0 引言 从控制台中读取数据是一个比较常用的功能,在 JDK 5.0 以前的版本中的实现是比较复杂的,需要手工处理系统的输入流.有意思的是,从 JDK 5.0 版本开始,能从控制台中输入数据的方法每增 ...
- Linux从mysql中读取数据_linux shell中读写操作mysql数据库
本文介绍了如何在shell中读写mysql数据库.主要介绍了如何在shell 中连接mysql数据库,如何在shell中创建数据库,创建表,插入csv文件,读取mysql数据库,导出mysql数据库为 ...
- 《Clojure数据分析秘笈》——1.6节从JDBC数据库读取数据
本节书摘来自华章社区<Clojure数据分析秘笈>一书中的第1章,第1.6节从JDBC数据库读取数据,作者(美)Eric Rochester,更多章节内容可以访问云栖社区"华章社 ...
- 多线程不重复读取数据_用 PHP 实现多线程编程
(给PHP开发者加星标,提升PHP技能) 转自:腾讯云(枕边书) cloud.tencent.com/developer/article/1012783 1.前言 前些天帮同事查一个问题,第一次接触到 ...
最新文章
- C# winform treeview node添加右键菜单并选中节点
- POJ_2536_Gopher II
- Java学习笔记(5)——泛型
- k近邻法matlab_机器学习系列(一)K近邻算法(KNN,KNearestNeigh
- NOIP2008 双栈排序
- OpenG 轮廓检测
- java 查询启动时间_java获取系统开机时间
- 程序员自我修养的4个阶段
- 【Not all parameters were used in the SQL statement】
- React Native - 3 View, Text简介以及onPress onLongPress事件
- M1芯片MacBook pro重装系统出现报错情况的解决方法
- 在制作html页面时,在制作Xhtml页面时是先写HTML代码还是先写CSS代码
- 如何制作高效率的数据可视化大屏
- WhereHows 数据发现和管理工具
- OA协同办公软件评测 —— Tower篇
- 接口自动化测试平台,Django“踩坑”之旅(四):“Not Found: /favicon.ico”错误处理
- TrueNAS静态IP设置
- 成都拓嘉辰丰电商:如何处理拼多多物流服务异常
- DuKBitmapImages 图片压缩处理技术
- npm install 报错 gyp info it worked if it ends with ok
热门文章
- Angular的工作原理
- 关于html:form/html:form特性
- AS3 CookBook学习整理(一)
- java 常量池 和 堆 的关系_Java堆、栈和常量池以及相关String的详细讲解(经典中的经典)...
- 在php里让字体划过变色,鼠标划过字体时如何用css来实现字体变色?(代码实测)...
- linux文件编程(1)—— open、write、read、lseek、阻塞问题
- CSDN怎么转载别人的博客
- 树莓派换源、vim更新:树莓派更换国内可用镜像源
- at指令返回值检验c语言,学渣求指教,如何识别字符串中的AT命令并逐个输出,求程序!!!...
- 粒子文字特效css,CSS3 粒子效果