1 简介
多线程类似于同时执行多个不同程序,多线程运行有如下优点:
使用线程可以把占据长时间的程序中的任务放到后台去处理。用户界面可以更加吸引人,这样比如用户点击了一个按钮去触发某些事件的处理,可以弹出一个进度条来显示处理的进度。程序的运行速度可能加快。在一些等待的任务实现上如用户输入、文件读写和网络收发数据等,线程就比较有用了。在这种情况下我们可以释放一些珍贵的资源如内存占用等等。
一个小的例子:
import threading
def text():
print('123')
a = threading.Thread(target=text)
a
#Out[5]: <Thread(Thread-1, initial)>
a.start()
#123
当有多个线程时,使用join()表示等待其他线程跑完之后才继续执行其以下语句。
2 加锁与释放锁
import threading
mlock = threading.Lock
mlock = threading.Lock()
num = 0
def a():
global num
mlock.acquire()#加锁
num +=1#要加锁的代码,防止运行期间被占用
mlock.release()#释放锁,有几个加锁要有几个释放
print(num)
for i in range(0,10):
d = threading.Thread(target=a)
d.start()
1
2
3
4
5
6
7
8
9
10