python基础篇--threading(多线程)

threading(多线程)
在python里面提供两个标准库thread和threading提供对线程的支持,由于thread提供比较低级,原始的线程以及一个简单的锁。而threading提供了较为高级的线程,在此我们详细介绍一下threading
方法:
treading.currentThread():返回当前的线程变量
treading.enumerate():返回一个包含正在运行的线程的list。正在运行是指线程启动后,结束前,不包括启动前和终止后的线程
treading.activeCount():返回正在运行的线程数量,与len(threading.enumerate())有相同的结果
t.run():线程活动的方法。(线程具体做什么,在这里调用)
t.start():启动线程活动
t.join([time]):等待至线程终止,这阻塞调用线程至线程的join()方法被调用终止-正常退出或者抛出未处理的异常,或是可选的超时发生。
isAlive(t):返回线程是否活动
getName(t):返回线程名
setName(t):设置线程名
线程同步(锁Lock):
多个线程共同对摸个数据修改,可能出现不可以预料的结果,为了保证数据的正确性,需要对多个线程进行同步。可以通过threadLock = threading.Lock() 在线程中的run方法中。threadLock.acquire()锁定线程, threadLock.release()释放线程

import threading
import time
def print_time (thread_name , counter):
while counter:
time.sleep( 1 )
print "%s: %s" % (thread_name , time.ctime(time.time()))
counter -= 1

threadTest2_1 = threading.Thread( target =print_time , args =( 'threadTest2_1' , 3 )) # target为调用的方法,args为参数以元组的形式传入
threadTest2_2 = threading.Thread( target =print_time , args =( 'threadTest2_2' , 3 ))

threadTest2_1 .start()
threadTest2_2.start()
# 输出结果:
# threadTest2_1: Wed Jan 11 16:19:08 2017
# threadTest2_2: Wed Jan 11 16:19:08 2017
# threadTest2_1: Wed Jan 11 16:19:09 2017
# threadTest2_2: Wed Jan 11 16:19:09 2017
# threadTest2_1: Wed Jan 11 16:19:10 2017
# threadTest2_2: Wed Jan 11 16:19:10 2017

显然直接调用的方法比较单一,下面我们采用类的方法:
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值