Python 多线程编程
话不多说, 直接上代码
from threading import Thread, Lock
import time
import dis
globalVar = [0]
lock = Lock()
class MyThread(Thread):
def __init__(self):
super().__init__()
def run(self): # 实现自己的Thread类时, 需要重写run方法
global globalVar
lock.acquire()
tmp = globalVar[0]
globalVar[0] = tmp + 1
lock.release()
def f(n):
# print(n) 仅仅用来测试传参, 注释掉
global globalVar
lock.acquire()
tmp = globalVar[0]
globalVar[0] = tmp + 1
lock.release()
if __name__ == "__main__":
ts = []
# 实现多线程的第一种方式, 继承Thread类, 重写run方法. -- MyThread
for i in range(1, 1001):
ts.append(MyThread())
# 实现多线程的第二种方式, target指定f函数, args传递参数.
for i in range(1, 1001):
ts.append(Thread(target=f, args=(1,)))
# 启动 t
for t in ts:
t.start()
time.sleep(0.1)
print(globalVar[0]) # 这里应该是2000
# 打印机器码
# dis.dis(MyThread)
# print("-----------------")
# dis.dis(f)
输出结果
2000
life is a game

浙公网安备 33010602011771号