python库学习笔记(threading库)

Posted Alfredfly

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python库学习笔记(threading库)相关的知识,希望对你有一定的参考价值。

import threading

threading模块里提供的

  1.  Thread:表示一个线程的执行的对象。

  2.  Lock:锁原语对象

  3.  Rlock:可重入锁对象。使单线程可以再次获得已经获得的锁。

  4.  Condition:条件变量对象。能让一个线程停下来,等待其他线程满足了“某个”条件。

  5.  Event:通用的条件变量。多个线程可以等待某个时间的发生,在事件发生后,所有的线程都被激活。

  6.  Semaphore:为等待锁的线程提供一个类似“等候室”的结构

  7.  Timer:与thread类似,只是它要等待一段时间后才开始运行。

threading的Thread类里的方法。

  1.  Thread.start():开始执行线程。

  2.  Thread.join(timeout=None):阻塞主程序,直到线程结束,如果给了timeout,则最多阻塞timeout秒。

  3.  Thread.run():定义线程的功能(一般会被子类重写)

  4.  Thread.getName():返回线程的名字。

  5.  Thread.setName():设置线程的名字。

  6.  Thread.isAlive():检查线程是否还在执行。

  7.  Thread.isDaemon():查看线程是不是守护线程。

  8.  Thread.setDaemon():True为设置守护线程,False就不是,一定要在start()方法前调用。

实例:

 1 # -*- coding: utf-8
 2 import threading
 3 from time import ctime, sleep
 4 
 5 def music(func):
 6     for i in range(2):
 7         print "I was listening to %s. %s" % (func, ctime())
 8         sleep(1)
 9 
10 def movie(func):
11     for i in range(2):
12         print "I was watching the %s. %s" % (func, ctime())
13         sleep(5)
14 
15 #开始创建线程
16 threads = []
17 t1 = threading.Thread(target=music, args=(u\'爱情买卖\',))
18 threads.append(t1)
19 t2 = threading.Thread(target=movie, args=(u\'阿凡达\',))
20 threads.append(t2)
21 
22 
23 if __name__ == \'__main__\':
24     for t in threads:
25         t.start() #运行线程
26     t.join() #阻塞主进程,直到第二个线程结束。
27     print u\'over\', ctime()

如果把第18行代码放在第20行代码后面,会出现不一样的结果。因为第26行代码中的t.join()只能保证循环中的最后一个线程运行结束,可以为每一个线程都设置一个join()方法。

1 for t in threads:
2     t.join

 参考博文:

https://www.cnblogs.com/fnng/p/3670789.html

https://blog.csdn.net/eastmount/article/details/50155353

 

以上是关于python库学习笔记(threading库)的主要内容,如果未能解决你的问题,请参考以下文章

python标准库学习thread,threading多线程的介绍和使用

python requests库学习笔记(下)

python学习笔记-基础

python学习多线程下载图片实战

python requests库学习笔记(上)

学习笔记Python - Lxml