进程和异常(Process and exceptions)
来源:互联网 发布:php分类信息系统 编辑:程序博客网 时间:2024/05/28 15:42
class multiprocessing. Process(group=None, target=None, name=None, args=(), kwargs={}, *, daemon=None)
Process对象表示在一个独立进程中运行的活动。Process类具有与threading.Thread模块的所有方法同等的方法。
应始终调用带有关键字参数的构造函数。group的值始终为None,它是专门为了与threading.Thread兼容而存在的。target是由run()方法调用的可调用对象,它的默认值是None,即不调用任何东西。name是进程的标识。args是target调用的元组参数。kwargs是target调用的关键字字典参数。如果提供daemon关键字,那么只是将进程的daemon属性标记为True或False。如果值为None(默认值),则此标记将从创建的进程继承。
默认情况下,没有参数传递给target。
如果一个子类重写了构造函数,它必须确保在对进程做其它操作之前调用了基类的构造函数(Process.__init__() )。
在版本3.3中的更改:添加daemon参数。
run()
方法表示进程的活动。
你可以在子类中重写这个方法。标准的run()方法将调用可调用对象作为target参数传递给对象的构造函数,如果有,分别带上从args参数和kwargs参数取得的序列参数和关键字参数。
start()
启动进程活动。
每个进程对象最多只能调用一次。它为在独立的进程中被调用的对象的run()方法做准备。
join([timeout])
如果可选参数timeout是None(默认值),join()阻塞进程,直到调用join()方法的进程结束为止。如果timeout是一个正数,进程至少被阻塞timeout秒。注意如果它的进程结束或者join()方法超时join()方法返回None。检查进程的exitcode判断进程是否结束。
一个进程可以被连接(joined)多次。
进程不能连接(join)自己,因为这会导致死锁。在进程被启动前连接(join)另一个进程会出错。
name
进程的名字。name是一个仅用于标识进程的字符串。它没有语义。多进程可以有相同的name。
通过构造函数设置初始name。如果没有为构造函数提供明确的name,那么就以“Process-N1:N2:...:Nk”的形式构建name,其中每个Nk是其父代的第N个子代。
is_alive()
返回进程是否处于活跃状态。
进程对象的活跃状态是从start()方法返回到子进程结束那一刻。
daemon
进程的daemon标记。一个布尔值(Boolean)。它必须在start()方法被调用前设置。
初始值从创建的进程继承。
当一个进程退出,它会尝试结束所有的守护子进程。
注意,守护进程不允许创建子进程。否则,如果当一个守护进程的父进程退出时,守护进程得到终止,使得守护进程的子进程成为孤进程。此外,这些不是Unix守护进程或服务,它们是标准进程--如果非守护进程退出就终止(而不是joined)。
除了threading.Thread API之外,Process对象还支持以下属性和方法:
pid
返回进程的ID。进程被生成前,它的值是None。
exitcode
子进程的退出码。如果进程尚未结束,它的值为None。一个负值-N表明子进程是被信号N结束的。
authkey
进程的认证密钥(字节字符串)。
当初始化多进程时,使用os.urandom()为主进程分配一个随机字符串。
当一个进程对象被创建,它将继承父进程的认证密钥,尽管这可以通过将authkey设置为另一个字节字符串来改变。
见Authentication keys.
sentine1
系统对象的数字句柄,在进程结束时将变为“ready”。
如果要使用multiprocessing.connection.wait()等待多个事件,可以使用此值。否则调用join()更简单。
在Windows上,这是一个可用于WaitForSingleObject和WaitForMultipleObjects系列API调用的操作系统句柄。 在Unix上,这是一个文件描述符,可以与select模块的原函数一起使用。
terminate()
结束进程。在Unix上,这是使用SIGTERM信号完成的; 在Windows上使用TerminateProcess()。 注意,退出处理程序和finally子句等,将不会被执行。
注意,进程的后代进程不会被终止 - 它们将成为孤进程。
警告:如果在相关联的进程正在使用管道或队列时使用此方法,则管道或队列容易损坏,并且可能导致其他进程也无法使用。 类似地,如果进程已经获得锁或信号等,那么终止它可能导致其他进程死锁。
注意,start(),join(),is_alive(),terminate()和exitcode方法应该只被创建了进程对象的进程调用。
进程的一些方法的示例用法:
>>> import multiprocessing, time, signal>>> p = multiprocessing.Process(target=time.sleep, args=(1000,))>>> print(p, p.is_alive())<Process(Process-1, initial)> False>>> p.start()>>> print(p, p.is_alive())<Process(Process-1, started)> True>>> p.terminate()>>> time.sleep(0.1)>>> print(p, p.is_alive())<Process(Process-1, stopped[SIGTERM])> False>>> p.exitcode == -signal.SIGTERMTrue
异常:multiprocessing.ProcessError
所有多进程异常的基类
异常:multiprocessing.BufferTooShort
当提供的缓冲区对象对于消息读取而言太小时,Connection.recv_bytes_into()引发的异常。
异常:multiprocessing.
AuthenticationError
在出现身份验证错误时触发。
异常:multiprocessing.TimeoutError
当超时时,由带有timeout参数的方法触发。
- 进程和异常(Process and exceptions)
- 异常和异常处理(windows平台)About Exceptions and Exception Handling
- Symbian Thread and Process 进程和线程
- Process and Thread 进程和线程
- Android Process and Thread 进程和线程
- Android 进程 和 线程 Process and Threads
- 异常(Exceptions)
- Java 中的两种异常(Checked exceptions 和 Unchecked exceptions)
- Process and Thread Functions (进程和线程相关API函数)
- The Python Tutorial 3.2 - 8Errors and Exceptions(错误和异常)
- Django-restframework32 Exceptions(异常)
- 进程(process)和线程(thread).
- 进程(process)和线程(thread)
- 进程(process)和线程(thread)
- 进程(process)和线程_chris
- Interrupts and Exceptions (中断事件与异常事件)
- 进程(Process)
- Kotlin 其他(九) --- 异常(Exceptions)
- xpath入门
- wm(欧胜)8960音频编解码芯片
- 精通 CSS+DIV 网页样式与布局 99
- Java模拟最短作业优先、时间片轮转、最高响应比三种进程调度算法
- iOS——判断当前应用是否允许定位
- 进程和异常(Process and exceptions)
- 精通 CSS+DIV 网页样式与布局 100
- 鸡与 兔有几条腿的问题
- 深入理解ASP.NET的内部运行机制
- 区块链构筑永远值得信赖的独立信用记录
- Max Sum
- 如何通过js获取到CSS3里面transform rotate旋转角度的度数,matrix解析
- iOS8 Core Image In Swift:人脸检测以及马赛克
- 自己归纳的一些JS方法