上一篇说到thread模块,我们要自己解决线程锁。其实也没有什么啦。只是现在的人都比较懒,既然有高级封装的函数为什么要自己写。

所以就有了threading。

其实都一样啦。

来一个最简单的threading代码:

 1 import threading       #导入thrteading模块
 2 
 3 def run():                  #线程函数,打印线程名字和i的值
 4     for i in range(100):
 5         print(threading.current_thread().getName()+"-------"+str(i))
 6 
 7 threads = []              #创建线程列表
 8 
 9 for i in range(10):    #创建线程,并添加进线程列表
10     t = threading.Thread(target = run)
11     
12     threads.append(t)
13 
14 for i in threads:      #启动所有线程
15     i.start()
16     
17 for i in threads:       #主线成等待所有子线程结束
18     i.join()

以上代码与与thread模块的不同仅在于join()函数代替了我们去写线程锁。

仅此而已。

如果可以更简单:

1 import threading
2 
3 def run():
4     for i in range(100):
5         print(i)
6 
7 t = threading.Thread(target = run)
8 t.start()
9 t.join()

 主函数除了启动了一个子线程,啥也没干。