python 强大的multiprocessing模块 线程和进行优点的集合

一、python中进程中的应用

在进程中开启子线程中的fork方法只适合于基于unix的系统,在unix系统中

# Unix系统中,Windows不通过
import os


if __name__ == '__main__':
    pid = os.fork()
    if pid == 0:
        # 如果pid为0时,该进程为子进程
        print("Pid:",os.getpid())
    else:
        # 如果pid不为0,那么该进行为父进程,pid为子线程pid
        print("Pid:",os.getpid())

用fork开启子线程的方法只使用于基于Unix系统中,在fork的子进程中,会复制整个进程的信息,开启新的线程。在fork的应用中,有个基本的用法,就是fork+exec的组合

# 文件名:child.py
# 只适合于Unix系统
import os
import sys

name = sys.args[1]

if __name__ == '__main__':
    print("Child Pid:"+os.getpid()+" Name:"+name)


# 文件名:parents
# 只适合Unix系统
import os


if __name__ == '__main__':
    pid = os.fork()
    if pid == 0:
        os.execlp('python','python','child.py','parents')
    else:
        print('Child pid:'+os.getpid())

但是分支进程的方法只适应于基于Unix系统上,window上却不使用,可移植性比较差。

二、python中线程的应用

python的线程可以具有很好的可移植性,可以在各个平台上执行。python执行线程主要两个主要的方法。_threading和thread类的基本应用。

# 在基于Unix的系统和Windows系统里都可以

import os
import _threading as thread

def child(para):
    print("Parameter:"+para)

def parent():
    for i in range(5):
        thread.start_new_thread(child,(i,))


if __name__ == '__main__':
    parent()

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值