进程

线程同步:使用join,其实只有一个线程执行


udp端口占用有个立即释放 udp_socket.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEPORT,True)


os模块除了文件夹操作还有什么,好像没有了暂时没看到


线程共享全局变量,进程不共享全局变量,进程实际是在自己本身中拷贝了一个全局变量,自己做更改   所有线程有个Lock,进程没有Lock互相不影响


线程守护主线程  子线程.setDaemon(True)         进程守护主进程   子进程.daemon=True  格式不同


线程,进程,协程在不考虑cpu核数的情况下,具体是一起执行还是交替执行这个问题很重要,区分清
线程  单核情况下,实际是一个线程执行完,再执行下一个线程,不是打折骨头连着筋的
进程  和线程相同  pool的异步不相同
协程  单线程,多任务交替执行


进程最大,进程执行其实是其中的线程执行,然后可以在要求单线程的情况下,使用协程,所以协程最小


进程的格式:和线程相同


进程其实通俗说成,两个程序启动运行就是走两条进程,所以进程之间相互有通信  使用Queue搬运     (udp/tcp使用socket搬运)
Queue   消息队列      
queue(变量) = multiprocessing.Queue(5)   消息队列的个数限制,5表示队列最多一次储存5个就满了,是个参数
放入  queue.put(参数)
取出  queue.get()
判断 满了 queue.full()
    空  queue.empty()  这个empty是个坑,不建议使用    


个数  queue.qsize()




Pool进程池
pool = multiprocessing.Pool(3)  3:进程池中有3条进程,运行程序始终只使用这3条进程
想想是不是把进程池的运行放到循环里(for)看以后遇到多少吧
同步执行进程   pool.apply(函数名)
异步执行进程   pool.apply_async(函数名)  应该是实现三条进程同时走(用os.getpid()检验)
进程池需要关闭  pool.close()


主进程的等待放最后   (关闭了pool主进程才知道子进程run完了) pool.join()




Pool中的Queue创建方法有一点区别 queue = multiprocessing.Manager().Queue()   加个Manager表示是进程池中的Queue




小点:
multiprocessing.current_process  当前的进程
还记得命令里的pid吗,kill -9 pid那个,就是进程号
os模块除了文件夹使用,现在还有进程这,   os模块的方法  os.getpid() 获取进程号  os.get.ppid() 获取父进程号
子进程.terminate()终止进程

子线程.terminate()终止线程   terminate  使终止,就是个方法


import multiprocessing
import time
import os
def sing(num):
    a = os.getpid()
    print(a)


    for i in range(num):
        print('唱歌中..')
        time.sleep(0.2)


def dance(num):
    b = os.getpid()
    print(b)
    for i in range(num):
        print('跳舞中..')
        time.sleep(1)


if __name__ == '__main__':
    sing_process = multiprocessing.Process(target=sing,args=(5,))
    dance_process = multiprocessing.Process(target=dance,args=(4,))
    sing_process.start()
    dance_process.start()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值