python多线程多进程讲解

时隔多天,又开始新的内容,欢迎大家评论,一起学习,一起进步。

进程与线程的关系:操作系统执行一个程序时,都会释放一个内存,而这个内存区域就可以说是xxx进程,进程里有许多的线程工作(进程是资源单位,线程是执行单位,一个进程至少要有一个线程,启动某一个程序默认都有一个主线程)

#单线程
def func():
    for i in range(10):
        print("func",i)

if __name__ == '__main__':
    func()
    for i in range(10):
        print('main',i)

现象:(线性关系,一个完成,到另外一个)
在这里插入图片描述
多线程写法(一)

#多线程
from threading import Thread  #线程类

def func():
    for i in range(1000):
        print('func',i)

if __name__ == '__main__':
    t=Thread(target=func)#创建新线程
    t.start()#开始执行线程(多线程状态为可开启,具体什么时候能执行看upu)


    for i in range(1000):
        print('main',i)

现象:(一起进行)
在这里插入图片描述

多进程写法(二)

#多线程
from threading import Thread
class MYThread(Thread):
    def run(self): #固定的,run()作用:当线程被执行时,执行run()
        for i in range(1000):
            print('子线程',i)
        

if __name__ == '__main__':
    t=MYThread()
    #t.run()#不能,这是方法调用
    t.start()  #开始启动线程
    for i in range(1000):
        print('主线程',i)

现象:
在这里插入图片描述
多线程参数写法:

from threading import Thread  #线程类

def func(name):
    for i in range(1000):
        print(name,i)

if __name__ == '__main__':
    t1=Thread(target=func ,args=("参数1",))#传递参数必须是元组
    t1.start()#开始执行线程(多线程状态为可开启,具体什么时候能执行看upu)

    t2 = Thread(target=func, args=("参数2",))  # 创建新线程
    t2.start()

现象:
在这里插入图片描述

多进程:(一般少用,cpu不够用)
方法一

#多进程
from multiprocessing import Process

def func():
    for i in range(10):
        print('子进程',i)

if __name__ == '__main__':
    p=Process(target=func)#创建进程
    p.start()#开启进程
    for i in range(10):
        print('主进程',i)

现象:
在这里插入图片描述
方法二

#多进程
from multiprocessing import Process
class MYThread(Process):
    def run(self):
        for i in range(1000):
            print('子进程', i)

if __name__ == '__main__':
    p= MYThread()#实例化对象
    p.start()  # 开始启动线程
    for i in range(1000):
        print('  主进程', i)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

韶光不负

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值