【python 线程与进程简介】教程文章相关的互联网学习教程文章

python – 为什么我在从不同进程读取文件时遇到了竞争条件?【代码】

我正在尝试阅读包含6000行相同长度的大文本文件.文件可以通过不同的过程访问,我获取互斥锁以防止竞争条件.但输出包含部分读取行:58 '444444444444444444444444444444444444444444444444444444444\n' 58 '333333333333333333333333333333333333333333333333333333333\n' 46 '444444444444444444444444442222222222222222222\n' 58 '444444444444444444444444444444444444444444444444444444444\n'代码我试图运行:import multiproc...

python – 为什么我的多进程队列看起来不是线程安全的?【代码】

我正在构建一个运行另一个Python程序的监视程序计时器,如果它无法从任何线程中找到签入,则关闭整个程序.这样,它最终将能够控制所需的通信端口.计时器的代码如下:from multiprocessing import Process, Queue from time import sleep from copy import deepcopyPATH_TO_FILE = r'.\test_program.py' WATCHDOG_TIMEOUT = 2class Watchdog:def __init__(self, filepath, timeout):self.filepath = filepathself.timeout = timeoutsel...

python – Spawn子进程,期望控制台输入没有阻塞?【代码】

我试图通过调用cvs.exe进程从Python进行CVS登录.手动调用cvs.exe时,它会向控制台输出一条消息,然后等待用户输入密码. 用subprocess.Popen调用它时,我注意到调用阻塞了.代码是subprocess.Popen(cvscmd, shell = True, stdin = subprocess.PIPE, stdout = subprocess.PIPE,stderr = subprocess.PIPE)我认为它会阻塞,因为它正在等待输入,但我的期望是调用Popen会立即返回,然后我可以调用subprocess.communicate()来输入实际的密码.如何...

用于Vista UAC的python IPC(进程间通信)(用户访问控制)

我在(wx)python中编写了一个Filemanager – 已经有很多工作了.复制文件时,已有进度对话框,覆盖处理等. 现在在Vista中,当用户想要将文件复制到某些目录(例如%Program Files%)时,应用程序/脚本需要提升,这在运行时是无法提出的.所以我必须启动另一个提升的应用程序/脚本,它完成工作,但需要与主应用程序通信,因此后者可以更新进度等. 我搜索并发现很多文章说共享内存和管道是最简单的方法.所以我正在寻找的是一个“高级”平台独立的...

python – 退出守护进程的问题【代码】

我正在编写一个守护程序,它会产生其他几个子进程.运行停止脚本后,主进程在打算退出时继续运行,这让我很困惑.import daemon, signal from multiprocessing import Process, cpu_count, JoinableQueue from http import httpserv from worker import workclass Manager:"""This manager starts the http server processes and workerprocesses, creates the input/output queues that keep the processeswork together nicely."""def...

Django / Python:如何在Python中启动新进程?

在客户上传图像后,我想将图像重新调整为8种不同的尺寸,然后将它们发送到S3并将它们保存到文件系统中.显然这可能需要很长时间(秒),我希望以“多线程”的方式进行(我引用它,因为我不在乎它是否实际上是多线程的,或者它是否是其他功能).我的理解是,由于Python中的GIL,你不能成功地将多线程用于这样的事情,因为它使用相同的过程,因此与在代码的正常流程中执行的操作完全相同(与多线程相比).是否有其他更好的方法在Python中为这种任务打...

Python:使用setproctitle更改进程名称【代码】

我有一个python脚本,它启动了许多C程序,每个程序都传递一个命令行参数,如下所示process_path "~/test/" process_name "test" num_process = 10for p in range(1, num_processes, 1):subprocess.Popen([process_path + process_name, str(p)], shell = False)是否可以让我们setproctitle重命名这些进程,以便我可以将命令行参数作为进程名称的一部分包含在内,如果是这样,你会怎么做?解决方法:如果将kwarg可执行文件传递给subprocess...

Grepping Python进程【代码】

我正在运行一个执行以下任一操作的脚本:./ide.py # or python ./ide.py之后我使用pstree -p |要检查grep ide.py,但我只找到了一个Python进程.如果我运行了很多Python脚本,我怎样才能将它们相互区分?解决方法:使用-a开关:pstree -p -a显示进程命令行参数.

Python:如何使用管理员权限启动进程?【代码】

我从具有管理员权限的Windows 7命令行启动以下脚本:import win32com.client import time import SendKeys import os from ctypes import *shell = win32com.client.Dispatch("WScript.Shell")os.startfile("C:\...exe")我还在属性>下为python.exe分配了“以管理员身份运行此程序”功能.兼容性>特权等级.这并没有改变任何事情. 当我通过双击屏幕打开它时,程序以这种方式打开它时的行为仍然表现不同.我在这里错过了一些重要的事吗?...

如何找到python守护程序进程死亡的查找原因?【代码】

我使用python-daemon库在python中实现了一个守护进程. 然而,守护程序似乎定期死亡(或被杀死),其中定期从一天到几个月不等. 我试图通过捕获异常,将它们记录到文件并将它们邮寄给我来找到守护程序死亡的原因.我的脚本的守护进程部分看起来大致如下:import daemoncontext = daemon.DaemonContext(working_directory='/foo/',pidfile=lockfile.FileLock('/foo/foo.pid') )try:with context:do_stuff() except Exception, e:log_except...

python – 将来自Twisted`enterprise.adbapi`的查询添加到`twistd`守护进程创建的reactor循环中【代码】

我在Twisted .tac插件中使用twisted.enterprise.adbapi,并且发现除非调用reactor.(run),否则为aConnectionPool.runQuery(sqlQuery)等函数返回的延迟对象不会触发.如何将查询添加到twistd创建的reactor循环而不是调用reactor.run()?它是一般程序还是异步数据库API特有的? 编辑 – 附上代码:from twisted.application import internet, service from zope.interface import implements from twisted.web.iweb import IBodyProduce...

python – 使用Django ORM作为跨主机的多进程锁【代码】

我在连接到公共数据库服务器的几个Web主机上运行Django.该数据库包含一个简单的待处理作业表.例如class Job(models.Model):name = models.CharField(max_length=255, null=False, help_text='task to do')worker = models.CharField(max_length=255, null=True, help_text='globally unique host name')我如何使用Django的ORM来查询待处理的作业(其中worker为null)并以原子方式设置工作者名称,因此没有两个Django进程会意外地获取相...

Python程序中的进程操作-开启多进程(multiprocess.process)

目录 一、multiprocess模块 二、multiprocess.process模块 三、process模块介绍 3.1 方法介绍 3.2 属性介绍 3.3 在windows中使用process模块的注意事项四、使用process模块创建进程 4.1 在Python中启动的第一个子进程 4.2 join方法 4.3 查看主进程和子进程的进程号 4.4 多个进程同时运行 4.5 多个进程同时运行,再谈join方法(1) 4.6 多个进程同时运行,再谈join方法(2) 4.7 通过继承Process类开启进程 4.8 进程之间的数据隔离问题五...

如何将python程序作为守护进程运行?【代码】

我编写以下程序来运行我的程序作为守护进程,但它没有运行;当我从python调试器运行程序时它工作. 我正在使用Mac os x. /User/Library/LaunchDaemons/com.bobbob.osx.test.plist:<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC -//Apple Computer//DTD PLIST 1.0//EN http://www.apple.com/DTDs/PropertyList-1.0.dtd > <plist version="1.0"> <dict> <key>Label</key> <string>com.bobbob.osx.test</string> <key...

python – multiprocessing.Queue在“读者”进程死亡后的死锁【代码】

我一直在玩多处理程序包,并注意到在以下情况下队列可能会被解锁以便进行读取: >“读者”进程使用get,超时> 0:self.queue.get(timeout=3)>“读取器”在get由于超时而阻塞时死亡. 在该队列永久锁定之后. 应用程序演示了这个问题 我创建了两个子进程“Worker”(进入队列)和“Receiver”(从队列中获取).此外,父母过程会定期检查他的孩子是否为are alive并在需要时开始新孩子.#!/usr/bin/env python # -*- coding: utf-8 -*-import mu...