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

 

转载于:https://www.cnblogs.com/Alfred-ou/p/9016973.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值