本篇文章是java 并发主题详解的姊妹篇,主要包括Python多线程的定义、共享受限资源、线程间协作和性能调优。
1 多线程定义(这里仅讲继承threading.Thread这一种方式):
1.1 定义多线程类
import threading
class FirstThread(threading.Thread):
#子类__init__方法中,调用父类Thread的__init__方法
def __init__(self,threadName):
threading.Thread.__init__(self,name = threadName)
self.threadName = threadName
#重写父类Thread的run()方法,这里是线程要做的东西
def run(self):
print self.threadName
1.2 调用
f = FirstThread('t1')
f.start()
1.3 结果
t1
总结:Python的多线程需要调用threading.Thread的__init__方法,重写run()方法,启动线程用start的方法。
2 共享受限资源
class Counter(object):
def __init__(self,i,rLock):
self.i = i
self.rLock = rLock
def next(self):
#获得锁
self.rLock.acquire()
self.i = self.i+1
self.i = self.i+1
#释放锁
self.rLock.release()
共享受限资源通过threading.RLock对象来做。
3 线程间协作
。。。待续