python起进程函数 python 进程pid( 三 )


例1.2:创建函数并将其作为多个进程
import multiprocessing
import time
def worker_1(interval):
print "worker_1"
time.sleep(interval)
print "end worker_1"
def worker_2(interval):
print "worker_2"
time.sleep(interval)
print "end worker_2"
def worker_3(interval):
print "worker_3"
time.sleep(interval)
print "end worker_3"
if __name__ == "__main__":
p1 = multiprocessing.Process(target = worker_1, args = (2,))
p2 = multiprocessing.Process(target = worker_2, args = (3,))
p3 = multiprocessing.Process(target = worker_3, args = (4,))
p1.start()
p2.start()
p3.start()
print("The number of CPU is:" + str(multiprocessing.cpu_count()))
for p in multiprocessing.active_children():
print("childp.name:" + p.name + "\tp.id" + str(p.pid))
print "END!!!!!!!!!!!!!!!!!"
结果
1234567891011The number of CPU is:4childp.name:Process-3p.id7992childp.name:Process-2p.id4204childp.name:Process-1p.id6380END!!!!!!!!!!!!!!!!!worker_1worker_3worker_2end worker_1end worker_2end worker_3
例1.3:将进程定义为类
import multiprocessing
import time
class ClockProcess(multiprocessing.Process):
def __init__(self, interval):
multiprocessing.Process.__init__(self)
self.interval = interval
def run(self):
n = 5
while n0:
print("the time is {0}".format(time.ctime()))
time.sleep(self.interval)
n -= 1
if __name__ == '__main__':
p = ClockProcess(3)
p.start()
注:进程p调用start()时,自动调用run()
结果
12345the time is Tue Apr 21 20:31:30 2015the time is Tue Apr 21 20:31:33 2015the time is Tue Apr 21 20:31:36 2015the time is Tue Apr 21 20:31:39 2015the time is Tue Apr 21 20:31:42 2015
python 怎么启动一个外部命令程序,并且不阻塞当前进程1、说明:
python中使用os模块的os.startfile函数就可以实现启动外部命令,并且不阻塞当前的进程 。
2、示例:
import os
os.startfile('notepad.exe')
print('我继续执行了,并没有阻塞')
3、执行结果
4、函数说明:
startfile(...)
startfile(filepath [, operation])
打开与它的相关联的应用程序的文件 。
startfile只要相关联的应用程序启动返回 。
没有选择等待应用程序关闭了 , 没办法检索应用程序的退出状态 。
该文件路径是相对于当前目录 。如果你想使用绝对路径,确保第一个字符不是斜线(“/”); 如果是基础Win32 ShellExecute函数不起作用 。
python进程能实现吗序. multiprocessing
python中python起进程函数的多线程其实并不是真正python起进程函数的多线程python起进程函数,如果想要充分地使用多核CPUpython起进程函数的资源python起进程函数,在python中大部分情况需要使用多进程 。Python提供了非常好用的多进程包multiprocessing,只需要定义一个函数 , Python会完成其他所有事情 。借助这个包,可以轻松完成从单进程到并发执行的转换 。multiprocessing支持子进程、通信和共享数据、执行不同形式的同步 , 提供了Process、Queue、Pipe、Lock等组件 。
回到顶部
1. Process
创建进程的类:Process([group [, target [, name [, args [, kwargs]]]]]) , target表示调用对象,args表示调用对象的位置参数元组 。kwargs表示调用对象的字典 。name为别名 。group实质上不使用 。
方法:is_alive()、join([timeout])、run()、start()、terminate() 。其中 , Process以start()启动某个进程 。
属性:authkey、daemon(要通过start()设置)、exitcode(进程在运行时为None、如果为–N,表示被信号N结束)、name、pid 。其中daemon是父进程终止后自动终止 , 且自己不能产生新进程,必须在start()之前设置 。

推荐阅读