# -*- coding:utf-8 -*- # å¤çº¿ç¨ 对CPUå¯éåä¸å©ï¼IOå¯éåæå© import threading import time def start(): i = 0 for j in range(10000000): i += j return def main(): ts = {} s = time.time() for i in range(10): #start() t = threading.Thread(target=start) t.start() ts[i] = t for i in range(10): ts[i].join() # é»å¡çº¿ç¨ï¼ä½¿ææçº¿ç¨æ§è¡å®æ¯ï¼åç»§ç»ä¸»çº¿ç¨ print(time.time()-s) # 8.16722822189331 å线ç¨è¿è¡10次start() # 7.964332342147827 å¤çº¿ç¨è¿è¡ï¼CPUå¯éåï¼GILééå¶åªè½ä¸ä¸ªä¸ä¸ªçº¿ç¨æ§è¡ number = 0 lock = threading.Lock() def add_num(): global number for i in range(1000000): lock.acquire() number += 1 lock.release() def dec_num(): global number for i in range(1000000): lock.acquire() number -= 1 lock.release() def run_threading(): global number t1 = threading.Thread(target=add_num) t2 = threading.Thread(target=dec_num) print("--start--") t1.start() t2.start() t1.join() t2.join() print(number) print("--stop--") if __name__ == '__main__': #main() run_threading()