本文共 2082 字,大约阅读时间需要 6 分钟。
#利用time延时函数,生成两个函数# 利用多线程调用# 计算总运行时间# 练习带参数的多线程启动方法import time# 导入多线程处理包import threadingdef loop1(in1): print('Start loop 1 at :', time.ctime()) print("我是参数 ",in1) time.sleep(4) print('End loop 1 at:', time.ctime())def loop2(in1, in2): print('Start loop 2 at :', time.ctime()) print("我是参数 " ,in1 , "和参数 ", in2) time.sleep(2) print('End loop 2 at:', time.ctime())def main(): print("Starting main at:", time.ctime()) # 生成threading.Thread实例 t1 = threading.Thread(target=loop1, args=("王老大",)) t1.start() t2 = threading.Thread(target=loop2, args=("王大鹏", "王小鹏")) t2.start() t1.join() t2.join() #等待线程执行完成,才执行下一个 print("All done at:", time.ctime())if __name__ == "__main__": main() # 一定要有while语句 # 因为启动多线程后本程序就作为主线程存在 # 如果主线程执行完毕,则子线程可能也需要终止 # while True: # time.sleep(10)
守护线程-daemon
import timeimport threading
def fun():
print("Start fun")time.sleep(2)print("end fun")print("Main thread")
t1 = threading.Thread(target=fun, args=() )
t1.setDaemon(True)
#t1.daemon = Truet1.start()time.sleep(1)
print("Main thread end")- 线程常用属性 - threading.currentThread:返回当前线程变量 - threading.enumerate:返回一个包含正在运行的线程的list,正在运行的线程指的是线程启动后,结束前的状态 - threading.activeCount: 返回正在运行的线程数量,效果跟 len(threading.enumerate)相同 - thr.setName: 给线程设置名字 - thr.getName: 得到线程的名字 - 直接继承自threading.Thread - 直接继承Thread - 重写run函数 - 类实例可以直接运行 - 案例09 - 案例10, 工业风案例
转载于:https://blog.51cto.com/14083201/2342938