【Python:为长时间运行的后台进程生成或线程?】教程文章相关的互联网学习教程文章

Python 进程和线程

前言 1. 什么是“多任务”的操作系统? 简单地说,就是操作系统可以同时运行多个任务。 2. 单核CPU是如何执行多任务的? 操作系统轮流让多个任务交替执行,任务1执行0.01s,切换到任务2,任务2执行0.01s,再切换到任务3,执行0.01s……这样反复执行下去。表面上看,每个任务都是交替执行的,但是,由于CPU的执行速度实在是太快了,我们感觉就像所有任务都在同时执行一样。真正的并行执行多任务只能在多核CPU上实现,但是,由于任务...

python 多进程

#方法一 直接调用 import time import random from multiprocessing import Process def run(name):index = 0for i in range(3):print('%s runing' %name)time.sleep(random.randrange(1,5))print('%s running end' %name)index +1l = [] if __name__ == "__main__":for i in range(20):p = Process(target=run,args=(i,))p.start()l.append(p)for proc in l:proc.join()print("执行完毕")

python终止/杀死子进程组

我有一些python脚本,它们通过subprocess.Popen()级联打开. (我叫使script2.py成为pop2的script1.py,使script3.py成为popen的等等) 有什么方法可以终止/杀死script1.py PID的script1.py的所有子进程. os.killpg()不起作用. 谢谢你的帮助.解决方法:通过在执行script2.py的开始时更改gid,后续的进程便属于script2 gid.因此,使用script2的pid从script1.py调用killpg()很好.

python-如何捕获除stdout / stderr以外的子进程的输出?【代码】

我有一个要通过子进程启动的程序.除了stdout和stderr之外,它还可以输出到fd.有没有办法从任意fd捕获数据?如果我的进程正在将输出发送到fd 9,我想执行以下操作:import subprocess, StringIO redirector = StringIO.StringIO() errno = subprocess.call(cmd, fd9=redirector) #process the error code and data in redirector我不想通过stderr或stdout将调用的进程的输出重定向到fd 9.解决方法:如果程序在开始运行后打开文件描述符...

python 进程【代码】【图】

理论 什么是进程 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。 狭义定义:进程是正在运行的程序的实例(an instance of a computer program that is being executed...

如何判断进程是否在Windows上的Python中响应【代码】

我正在编写一个python脚本,以保持有问题的程序打开,我需要弄清楚该程序是否没有重新安装并在Windows上将其关闭.我不太清楚该怎么做.解决方法:在Windows上,您可以执行以下操作:import os def isresponding(name):os.system('tasklist /FI "IMAGENAME eq %s" /FI "STATUS eq running" > tmp.txt' % name)tmp = open('tmp.txt', 'r')a = tmp.readlines()tmp.close()if a[-1].split()[0] == name:return Trueelse:return False但是,使...

python2 logging模块在多进程和多线程混用下的一个坑

<style></style> https://zhuanlan.zhihu.com/p/36310626 锁在主进程的子线程中被获取 然后主进程同时又拉起了一个子进程 子进程copy了主进程的变量状态什么的 正好它copy的时候那个锁还在主进程的子线程中没释放 然后由于它是copy的所以copy来的那个锁的状态不会变 然后就算主进程的子线程释放了 主进程的子进程也不知道 它就一直等 一直阻塞在那里

python-使用串行对象作为参数的多进程【代码】

我在使用Python时遇到问题,并将串行对象作为参数传递给单独的进程.该程序正在Windows 8中运行,因此不能使用全局变量.from multiprocessing import Queue from multiprocessing import Process import os import serial from serial.tools import list_ports from time import sleepdisplayMessages = Queue() modemPort = Nonedef processDisplayMessages(displayMessages):while True:msg = displayMessages.get() #should halt ...

如何通过Python子进程杀死omxplayer【代码】

我正在玩Raspberry Pi GPIO.我将4个开关连接到GPIO. 我要实现的功能是 按住开关1.停止当前电影,播放M01.mp4. 按住开关2的同时,停止当前的电影,播放M02.mp4. … 如果没有保持任何开关,则播放器M00.mp4循环播放. 我只是学习Python 3天.非常感谢您可以提供详细代码帮助我. Popen.Terminate()或Kill()可以杀死草稿,为什么不能杀死omxplayer?#!/usr/bin/env python2.7 import subprocess,time import RPi.GPIO as GPIO GPIO.setmode(GP...

Python:忽略后台进程中的信号【代码】

我正在创建一个Python程序,该程序会定期调用外部命令.外部命令需要一些秒完成.我想减少外部命令终止的可能性通过为SIGINT添加信号处理程序来严重降低性能.基本上,我希望SIGINT尝试等到命令在终止Python程序之前执行.问题是,外部Perogram似乎是也获得SIGINT,导致其突然结束.我正在使用外部线程调用命令,因为根据http://docs.python.org/2/library/signal.html,有关信号的Python文档提到只有主线程才能接收信号.有人可以帮忙吗?这是...

Python Multiprocessing.Process如何重用一个进程?【代码】

我正在使用python多处理模块来并行运行一些长时间运行的任务.我正在使用start()方法运行作业,但是一旦作业返回,我想再次运行它们. 是否可以重用我创建的流程?还是我每次要运行作业时都必须创建一个新的Process对象? pyhton文档中有这部分建议我不能仅使用onece来使用start()方法,但是也许有人知道重用该实例的另一种方法: start() 开始流程的活动. 每个过程对象最多只能调用一次.它将对象的run()方法安排在一个单独的进程中. 这...

如何在Python中通过管道传输到os.execv进程的stdin【代码】

我想在替换我当前的Python进程的标准输入中写一些东西.是否有捷径可寻?我一直在思考import sys, osr, w = os.pipe() os.write(w, 'yo') os.dup2(r, sys.stdin.fileno()) os.execvp('cat', [''])但是当我在OS X中执行此操作时,cat会挂起,尽管会显示’yo’.为什么?解决方法:您在execvp()-子进程之前对进程进行os.fork();然后,父级将写入管道,而子级则从管道读取数据.父级也必须在fork()之后关闭()管道的读取端,而子级也必须将读取...

如何在python中一个接一个地运行两个进程【代码】

我正在尝试运行两个命令,一个接一个.我的代码如下:baking.bake() print "baking completed"我的目标是运行akeing.bake()(大约需要1分钟才能完成),此后立即要打印“开始烘焙”.最后,烘烤完成后,我要打印“烘烤完成”.本质上:如何异步运行bake()? 这是我的backing.py文件# Bake a texture map from cgkit.cmds import load, worldObject, listWorld from cgkit.rmshader import RMMaterial, RMShader from cgkit.sceneglobals imp...

python异常错误子进程文件丢失-但是什么文件?【代码】

我有一个在python 2.7.3(windows)上运行的代码,我尝试在python 2.7.8(windows)上运行它并得到以下错误: main:INFO **启动Main **Traceback (most recent call last):File "C:\wamp\www\prenderer\src\main.py", line 82, in <module>nuke_process = launch_nuke()File "C:\wamp\www\prenderer\src\main.py", line 31, in launch_nukequery = subprocess.Popen(r"query process", stdout=subprocess.PIPE)File "F:\python27\lib\s...

python-Groovy脚本无法执行外部进程【代码】

我正在尝试从我的Groovy脚本执行python外部进程,但它不会产生任何输出. 因此,作为一个小的健全性测试,我尝试仅输出python版本:def command = """ /usr/local/bin/python -V """def proc = command.execute()proc.waitFor()println "This is output: " + proc?.in?.text上面没有产生任何输出,但是,从我的命令行我可以运行/usr/local/bin / python -V 奇怪的是,如果我修改脚本以运行ident,那么它将产生输出.def command = """ /usr/...