码迷,mamicode.com
首页 > 编程语言 > 详细

python_并发编程——多线程

时间:2019-12-27 21:51:45      阅读:75      评论:0      收藏:0      [点我收藏+]

标签:接收参数   实例化   多线程并发   init   reading   art   图片   targe   方法   

1.多线程并发

from threading import Thread
import time

def func(n):
    time.sleep(1)
    print(n)

for i in range(10):
    t = Thread(target=func,args=(i,))   #将函数注册进子线程,并传递参数
    t.start()   #启动子线程

结果:技术图片

 

 2.另外一种启动多线程的方法

from threading import Thread
import time

class MyTread(Thread):
    def __init__(self,arg):     #接收参数
        super().__init__()
        self.arg = arg

    def run(self):  #子线程要执行的内容
        time.sleep(1)
        print(self.arg)

for i in range(10):
    t = MyTread(i)  #实例化子线程+传递参数
    t.start()   #启动子线程

结果:技术图片

 

 3.查看多线程是否都在同一个进程里面

from threading import Thread
import time
import os

class MyTread(Thread):
    def __init__(self,arg):     #接收参数
        super().__init__()
        self.arg = arg

    def run(self):  #子线程要执行的内容
        time.sleep(1)
        print(self.arg,os.getpid())

for i in range(10):
    t = MyTread(i)  #实例化子线程+传递参数
    t.start()   #启动子线程
print(主线程:,os.getpid())

结果:技术图片 相同的进程编号,说明所有的线程都在同一个进程里面。

4.线程之间数据共享

from threading import Thread
import time

ggg = 100

def func(n):
    time.sleep(1)
    global ggg
    ggg = 0
    print(子线程:,n)


t_list = []
for i in range(10):
    t = Thread(target=func,args=(i,))
    t.start()
    t_list.append(t)
for i in t_list:
    i.join()
print(主线程:,ggg)

结果:技术图片 全局变量ggg本来是100,在子线程中被改成了0。

python_并发编程——多线程

标签:接收参数   实例化   多线程并发   init   reading   art   图片   targe   方法   

原文地址:https://www.cnblogs.com/wangdianchao/p/12109579.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!