首页 > 编程语言 > 详细

十、Python入门-多线程

时间:2020-04-15 16:57:55      阅读:65      评论:0      收藏:0      [点我收藏+]

多线程

进程

  程序:是指令和数据的有序集合,其本身没有任何运行的含义,是一个静态的概念

  进程:处理机制上的一次执行过程,他是一个动态的概念

  状态:就绪态、运行态、阻塞态

  CPU(4核)可以同时执行4个线程

线程

  进程中包含若干个线程,进程作为分配资源的基本单位,线程作为独立运行和独立调度的基本单位

多线程

  程序执行时,程序本身就是主线程,手动创建的叫子线程,他们的关系是父子进程

import threading
import time

def run1(name):
    while(True):
        print(name,"**")
        time.sleep(1)

def run2(name):
    while(True):
        print(name,"===")
        time.sleep(3)

#创建线程
t1=threading.Thread(target=run1,args=("t1",))
t2=threading.Thread(target=run2,args=("t2",))

t1.start()    #启动线程
t2.start()

# 11.4
t1.join()    #阻塞等待t1结束并回收资源
t2.join()    #阻塞等待t2结束并回收资源

线程锁

  保护共享资源

import threading 
import time

lock=threading.Lock() #创建一个线程锁

num=100

def run(name):
    global num    #设置num为全局变量,只能放在里面
    while(True):
        lock.acquire()    #上锁
        if(num==0):
            break
        
        num=num-1
        print("线程",name,"目前num:",num)
        lock.release()    #释放锁
        time.sleep(1)

#创建线程
for i in range(5):
    t=threading.Thread(target=run,args=(i+1,))
    t.start()        

多进程

  if __name__ == ‘__main__‘:     __name__变量为‘__main__‘时才执行,本文件时成立,当被作为模块引入时不成立

from multiprocessing import Process
import time

def run(name):
    print("进程",name,"执行了")
    time.sleep(5)

#创建进程
if __name__ == __main__:    #windows进程要写在里面
    p1=Process(target=run,args=("p1",))
    p2=Process(target=run,args=("p2",))

    p1.start()
    p2.start()

 

十、Python入门-多线程

原文:https://www.cnblogs.com/Just-a-calm-programmer/p/12705395.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!