进程---Process

#! /usr/bin/env python
# -*- coding:utf-8 -*-

"""
python中的多线程其实并不是真正的多线程(全局解释器锁(GIL)存在)
多进程包multiprocessing:可以轻松完成从单进程到并发执行的转换
multiprocessing支持子进程、通信和共享数据、执行不同形式的同步,提供了Process、Queue、Pipe、Lock等组件
"""
import multiprocessing
import time
"""
创建进程的类:Process([group [, target [, name [, args [, kwargs]]]]]),
target表示调用对象,
args表示调用对象的位置参数元组。
kwargs表示调用对象的字典。
name为别名。
group实质上不使用。
方法:is_alive()
join([timeout])
run()
start() 启动某个进程
terminate()


属性:
authkey
daemon(要通过start()设置) 在子线程设置后父进程终止后自动终止,且自己不能产生新进程,必须在start()之前设置。
exitcode(进程在运行时为None、如果为–N,表示被信号N结束)、
name
pid
"""

## 将进程定义为类

class ClockProcess(multiprocessing.Process):
    def __init__(self, interval):
        multiprocessing.Process.__init__(self)
        self.interval = interval

    def run(self):
        n = 5
        while n > 0:
            print("the time is {0}".format(time.ctime()))
            time.sleep(self.interval)
            n -= 1


if __name__ == '__main__':
    p = ClockProcess(3)
    p.start()

  

原文地址:https://www.cnblogs.com/wuxinyan/p/9129936.html