python全栈脱产第34天------开启进程的两种方式、join方法、进程对象其他相关的属性和方法、僵尸进程、孤儿进程、守护进程、互斥锁

一、开启进程的两种方式

  方式一:

from multiprocessing import Processimport time

def task(name):    print(‘%s is running‘ %name)    time.sleep(3)    print(‘%s is done‘ %name)

# 在windows系统上,开启子进程的操作必须放到if __name__ == ‘__main__‘的子代码中if __name__ == ‘__main__‘:    p=Process(target=task,args=(‘egon‘,)) #Process(target=task,kwargs={‘name‘:‘egon‘})    p.start() # 只是向操作系统发送了一个开启子进程的信号    print(‘主‘)  方式二:
from multiprocessing import Processimport time

class Myprocess(Process):    def __init__(self,name):        super().__init__()        self.name=name

def run(self):        print(‘%s is running‘ %self.name)        time.sleep(3)        print(‘%s is done‘ %self.name)

# 在windows系统上,开启子进程的操作必须放到if __name__ == ‘__main__‘的子代码中if __name__ == ‘__main__‘:    p=Myprocess(‘egon‘)    p.start() # 只是向操作系统发送了一个开启子进程的信号    print(‘主‘)二、join方法  让主进程在原地等待,等待子进程运行完毕,不会影响子进程的执行三、进程对象相关属性  进程pid:每一个进程在操作系统内都有一个唯一的id号,称之为pid四、僵尸进程和孤儿进程  僵尸进程:一个进程使用fork创建子进程,如果子进程退出,而父进程并没有调用wait或waitpid获取子进程的状态信息,那么子进程的进程描述符仍然保存在系统中。这种进程称之为僵死进程。  孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。孤儿进程将被init进程(进程号为1)所收养,并由init进程对它们完成状态收集工作。五、守护进程:本质就是一个‘子进程‘,该‘子进程‘的生命周期<=被守护进程的生命周期六、互斥锁  用mutex.acquire()方法实现并发下的串行的效果

原文地址:https://www.cnblogs.com/zhouyi0316/p/9592334.html

时间: 2024-10-11 03:20:15

python全栈脱产第34天------开启进程的两种方式、join方法、进程对象其他相关的属性和方法、僵尸进程、孤儿进程、守护进程、互斥锁的相关文章

python并发编程:多线程-开启线程的两种方式

一 threading模块介绍 multiprocess模块完全模仿了threading模块的接口,二者在使用层面,有很大的相似性 二 开启线程的两种方式 方式一 from threading import Thread import time def sayhi(name): time.sleep(2) print("%s say hello" % name) if __name__ == '__main__': t = Thread(target=sayhi, args=('mik

Java开启线程的两种方式

------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.ios培训..Net培训</a>.期待与您交流!------ Java开启线程的两种方式: 方式一:成为线程(Thread)的儿子,即继承Thread类简单代码如下:class Student extends Thread{Student(String name){super(name);}public

开启子进程的两种方式,孤儿进程与僵尸进程,守护进程,互斥锁,IPC机制,生产者与消费者模型

开启子进程的两种方式 # # # 方式一: # from multiprocessing import Process # import time # # def task(x): # print('%s is running' %x) # time.sleep(3) # print('%s is done' %x) # # if __name__ == '__main__': # # Process(target=task,kwargs={'x':'子进程'}) # p=Process(tar

开启线程的两种方式,

'''目录1,开启线程的两种方式*****2,线程和进程的区别*****3,线程对象的其他方法和属性4,守护线程5,互斥锁6,死锁现象与递过锁7,信号量'''#1 开启线程的两种方式import timefrom threading import Thread def dask(name): print('%s is running '%name) time.sleep(1) print('%s is done'%name) t=Thread(target=dask,args=('egon',)

7 并发编程-(线程)-开启线程的两种方式

thread/英 /θred/ 美 /θr?d/  线程 1.threading模块介绍 multiprocess模块的完全模仿了threading模块的接口,二者在使用层面,有很大的相似性,因而不再详细介绍 2.开启线程的两种方式 2.1.方式一 from threading import Thread import time def task(name): print(f"{name} is running") time.sleep(2) print(f"{name} i

2-2 开启线程的两种方式

一 threading模块介绍 multiprocess模块的完全模仿了threading模块的接口,二者在使用层面,有很大的相似性,因而不再详细介绍 二 开启线程的两种方式 方式一 from threading import Thread import time def sayhi(name): time.sleep(2) print('%s say hello' %name) if __name__ == '__main__': t=Thread(target=sayhi,args=('eg

1-2 开启进程的两种方式

一 multiprocessing模块介绍 python中的多线程无法利用多核优势,如果想要充分地使用多核CPU的资源(os.cpu_count()查看),在python中大部分情况需要使用多进程. Python提供了multiprocessing. multiprocessing模块用来开启子进程,并在子进程中执行我们定制的任务(比如函数),该模块与多线程模块threading的编程接口类似.multiprocessing模块的功能众多:支持子进程.通信和共享数据.执行不同形式的同步,>提供了

5.1.2 网络编程进阶---开启子进程的两种方式

当主进程开启子进程后,主进程会与子进程并行执行.当主进程执行后不会立马结束进程,而是会等子进程结束才结束,好去清理僵尸子进程(给子进程收尸). 第一种方式: from multiprocessing import Processimport time def task(name): print('%s is running' % name) time.sleep(3) print('%s is done' % name) if __name__ == '__main__': p = Proces

python全栈脱产第17天

一.time模块 1.时间戳:timestamp 从1970年1月1日到现在的秒数 time.time()浮点型时间 2.localtime当地时间 time.local()结构化时间 3.UTC世界时间 time.gmtime()结构化时间 可以用%Y等命令转换成我们看得懂的时间格式,仅限于结构化时间 4.time.sleep()让程序睡眠一定秒数 二.datetime模块 python实现的一个时间处理模块 优点:datetime比time更灵活,更本土化 timedelta表示时间差 两个