python多线程
需要用到threading库
1.一个简单的多线程
import threading,time
def run(n):
print("thread",n)
time.sleep(1)
print("2s")
time.sleep(1)
print("1s")
time.sleep(1)
def p_time(threadName,delay):
count = 0
while count < 5:
time.sleep(delay)
count += 1
print("%s : %s"%(threadName,time.ctime(time.time())))
if __name__ == '__main__':
# target指函数名,args是指函数所传得参数
threading.Thread(target=run,args=("thread-1",)).start()
threading.Thread(target=run,args=("thread-2",)).start()
threading.Thread(target=p_time,args=("thread-3",1)).start()
threading.Thread(target=p_time,args=("thread-4",1)).start()
2.自定义线程:继承threading.Thread来定义线程类,其本质是重构Thread类中的run方法
class MyThread(threading.Thread):
def __init__(self,name):
threading.Thread.__init__(self) # 重构run函数,必须写
self.name = name
def run(self):
print("开始线程:{}".format(self.name))
print(print_time(self.name,1))
print("结束线程:{}".format(self.name))
def print_time(threadName,delay):
count = 0
while count < 5:
time.sleep(delay)
count += 1
print("%s: %s" %
(threadName,time.ctime(time.time())))
if __name__ == '__main__':
# 创建线程
t1 = MyThread("t1")
t2 = MyThread("t2")
# 开始线程
t1.start()
t2.start()