每个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

子进程无法从标准输入读取数据相关推荐

  1. lunix 习题 设计一个程序 cuts,它由标准输入读取数据...

    设计一个程序 cuts,它由标准输入读取数据,获取由第一个参数 n 和第二个参数 m 所限定范围的数据,n 和 m 都是整数,即从输入的字符串中抽取第 n 个字符至第 m 个字符之间的所有字符(包括这 ...

  2. python从标准输入读取数据_在PYTHON中如何从标准输入读取内容stdin

    Python有几种方法来读取标准输入的数据. 1.sys.stdin sys.stdin提供了read()和readline()函数,如果想按一行行来读取,可以考虑使用它:import sys lin ...

  3. C和指针之动态内存分配(读取范围在1和标准输入读取的size之前每个数据出现的次数)

    1.问题 读取范围在1和标准输入读取的size之前每个数据出现的次数 2.代码实现 #include <stdio.h> #include <stdlib.h> #includ ...

  4. 笔记1-3: 从标准输入读取命令并执行

    从标准输入读取命令并执行: #include <apue.h> #include <unistd.h> #include <sys/wait.h> int main ...

  5. xcode 不能读取键盘输入的汉字_C++:cin从控制台读取数据时的结束符

    cin 可以用来从键盘输入数据:将标准输入重定向为文件后,cin 也可以用来从文件中读入数据.在输入数据的多少不确定,且没有结束标志的情况下,该如何判断输入数据已经读完了呢? 从文件中读取数据很好办, ...

  6. Java从控制台中读取数据完全攻略

    0 引言 从控制台中读取数据是一个比较常用的功能,在 JDK 5.0 以前的版本中的实现是比较复杂的,需要手工处理系统的输入流.有意思的是,从 JDK 5.0 版本开始,能从控制台中输入数据的方法每增 ...

  7. Linux从mysql中读取数据_linux shell中读写操作mysql数据库

    本文介绍了如何在shell中读写mysql数据库.主要介绍了如何在shell 中连接mysql数据库,如何在shell中创建数据库,创建表,插入csv文件,读取mysql数据库,导出mysql数据库为 ...

  8. 《Clojure数据分析秘笈》——1.6节从JDBC数据库读取数据

    本节书摘来自华章社区<Clojure数据分析秘笈>一书中的第1章,第1.6节从JDBC数据库读取数据,作者(美)Eric Rochester,更多章节内容可以访问云栖社区"华章社 ...

  9. 多线程不重复读取数据_用 PHP 实现多线程编程

    (给PHP开发者加星标,提升PHP技能) 转自:腾讯云(枕边书) cloud.tencent.com/developer/article/1012783 1.前言 前些天帮同事查一个问题,第一次接触到 ...

最新文章

  1. C# winform treeview node添加右键菜单并选中节点
  2. POJ_2536_Gopher II
  3. Java学习笔记(5)——泛型
  4. k近邻法matlab_机器学习系列(一)K近邻算法(KNN,KNearestNeigh
  5. NOIP2008 双栈排序
  6. OpenG 轮廓检测
  7. java 查询启动时间_java获取系统开机时间
  8. 程序员自我修养的4个阶段
  9. 【Not all parameters were used in the SQL statement】
  10. React Native - 3 View, Text简介以及onPress onLongPress事件
  11. M1芯片MacBook pro重装系统出现报错情况的解决方法
  12. 在制作html页面时,在制作Xhtml页面时是先写HTML代码还是先写CSS代码
  13. 如何制作高效率的数据可视化大屏
  14. WhereHows 数据发现和管理工具
  15. OA协同办公软件评测 —— Tower篇
  16. 接口自动化测试平台,Django“踩坑”之旅(四):“Not Found: /favicon.ico”错误处理
  17. TrueNAS静态IP设置
  18. 成都拓嘉辰丰电商:如何处理拼多多物流服务异常
  19. DuKBitmapImages 图片压缩处理技术
  20. npm install 报错 gyp info it worked if it ends with ok

热门文章

  1. Angular的工作原理
  2. 关于html:form/html:form特性
  3. AS3 CookBook学习整理(一)
  4. java 常量池 和 堆 的关系_Java堆、栈和常量池以及相关String的详细讲解(经典中的经典)...
  5. 在php里让字体划过变色,鼠标划过字体时如何用css来实现字体变色?(代码实测)...
  6. linux文件编程(1)—— open、write、read、lseek、阻塞问题
  7. CSDN怎么转载别人的博客
  8. 树莓派换源、vim更新:树莓派更换国内可用镜像源
  9. at指令返回值检验c语言,学渣求指教,如何识别字符串中的AT命令并逐个输出,求程序!!!...
  10. 粒子文字特效css,CSS3 粒子效果