Python多线程threading用法

Python里面经常会用到多线程,即所有的方法在同一时间开始运行,而不是按顺序一个一

个运行。所用到的模块为threading,下面详解threading用法。

  • 我们写三个方法,one、two、three并正常运行。

这里只截图了one()方法,two、three与one内容一样。

按下面图中的运行方式,三个函数是分别在不同时间运行的。

  • 我们用threading使三个方法在同一时间运行

 

定义一个线程池并把要运行的线程都写到这个线程池列表里:

threads= [] #定义一个线程池
t1 = threading.Thread(target=one,args=(,)) #建立一个线程并且赋给t1,这个线程指定调用方法one,并且不带参数
threads.append(t1)#把t1线程装到threads线程池里
t2 = threading.Thread(target=two)
threads.append(t2)
t3 = threading.Thread(target=three)
threads.append(t3)

这时threads这个列表中就有三个线程装在里面了。

下面就是运行这个线程池里面的线程

for t in threads:    t.setDaemon(True)#声明t为守护线程,设置的话,子线程将和主线程一起运行,并且直接结束,不会再执行循环里面的子线程    t.start()t.join()#作用是执行完所有子线程才去执行主线程

用一个for语句遍历threads里的线程,然后调用start()方法运行

注意t.join()必须放在for语句外面。

 

  • 运行结果为在同一时间启动的

 

是不是很快就明白threading的用法了呢?

有问题可以交流QQ群:610845268

时间: 2024-10-21 01:25:41

Python多线程threading用法的相关文章

Python 多线程threading模块

首先,我们在了解多线程时需要理解的就是什么是多线程,按照官方的解释就是:多线程(英语:multithreading),是指从软件或者硬件上实现多个线程并发执行的技术. 在我自学到这里的时候,通过会在想进程和线程到底是有什么区别,我的理解就是: 进程就是一个应用程序在处理机上的一次执行过程,它是一个动态的概念,而线程是进程中的一部分,一个进程可以包含多个线程. 下面就以简单的例子来加强我们对python 线程的理解. 默认情况下,我们在没有启动线程的时候,可以看一下程序总的运行时间,应该是每个函数

python多线程-threading模块

threading 是我们常用的用于 python 多线程的模块,其功能更加丰富.下面我们就来开始学习这个模块. 同样的,我这里声明一样我使用的版本是 python2.7,不同版本直接可能存在差异. 老规矩,使用 help() 函数获取帮助文档,看看里面有什么内容. threading 模块中提供了一个 thread 的类,注意不要和 thread 模块搞混了,两者差别还是很大的.thread 这个类可以实例化一个对象,每个对象代表一个线程,可以调用其中的 run() 方法来开启一个线程的运行.

Python多线程threading

介绍 在Python中,使用多线程multi-threading可以『同时』执行多个任务,比如你需要一个线程来复制读取信息,另一个线程来解析.为什么这里的同时要加引号呢,这是由于Python中GIL,也就是全局锁,看似同时执行多个任务,实际上是分布执行的,只不过各自完成不同的任务会提高工作效率.如果你不了解GIL,请看下图 实例教程 实例1 import threading def job(): info = "this is an added thread, which is %s"

再看python多线程------threading模块

现在把关于多线程的能想到的需要注意的点记录一下: 关于threading模块: 1.关于 传参问题 如果调用的子线程函数需要传参,要在参数后面加一个","否则会抛参数异常的错误. 如下: 1 for i in xrange(5): 2 threads.append(threading.Thread(target=worker,args=(i,))) 2.关于join()阻塞 join()方法一旦被调用,这个线程就会被阻塞住,等其他线程执行完才执行自身.当我们在主线程A中,创建了n个子线

[Python 多线程] threading.local类 (六)

在使用threading.local()之前,先了解一下局部变量和全局变量. 局部变量: import threading import time def worker(): x = 0 for i in range(100): time.sleep(0.0001) x += 1 print(threading.current_thread(),x) for i in range(10): threading.Thread(target=worker).start() 运行结果: <Thread

Python 多线程 threading

#!/usr/bin/python # -*- coding: utf-8 -*- __author__ = 'gaogd' ''' ### 多进程 import threading import time def run(num):     print 'Hi, I am thread %s..lalala' % num     time.sleep(1) for i in range(20):   t = threading.Thread(target=run, args=(i,))   t

python 多线程threading

上一篇说到thread模块,我们要自己解决线程锁.其实也没有什么啦.只是现在的人都比较懒,既然有高级封装的函数为什么要自己写. 所以就有了threading. 其实都一样啦. 来一个最简单的threading代码: 1 import threading #导入thrteading模块 2 3 def run(): #线程函数,打印线程名字和i的值 4 for i in range(100): 5 print(threading.current_thread().getName()+"------

python多线程的用法之一

import threadingimport time class thread_1(threading.Thread): sleep_time = 0 def __init__(self,id1): self.id1 = id1 threading.Thread.__init__(self) def run(self): thread_1.sleep_time += 2 time.sleep(thread_1.sleep_time) print('thread_num:',self.id1)

python 多线程threading的使用

一.线程创建方法 1. 普通创建 import threading def run(name): for i in range(3): print(name) if __name__ == '__main__': t1 = threading.Thread(target=run, args=("t1",)) t2 = threading.Thread(target=run, args=("t2",)) t1.start() t2.start() ----------