基于python3.6,使用threading模块实现:
1 import threading,time 2 3 def fun1(): 4 print("第一个函数") 5 lock.acquire() 6 global num 7 num +=1 8 lock.release() 9 return num 10 11 def fun2(): 12 print("第二个函数") 13 lock.acquire() 14 global num2 15 num2 +=1 16 lock.release() 17 return num2 18 19 def run3(): 20 lock.acquire() 21 res1 = fun1() 22 print('--- 两个函数之间的打印 ----') 23 res2 = fun2() 24 lock.release() 25 print(res1,res2) 26 27 num,num2 = 0,0 28 lock = threading.RLock() 29 30 for i in range(10): 31 t = threading.Thread(target=run3) 32 t.start() 33 34 35 36 while threading.active_count() != 1: 37 time.sleep(1) 38 print("当前线程数为:",threading.active_count()) 39 else: 40 print('所有线程结束,主进程结束!') 41 print(num,num2)