本文共 610 字,大约阅读时间需要 2 分钟。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | #coding:utf-8 import threading import time num = 0 #全局变量 def runs(): time.sleep( 1 ) global num #在函数内部要对全局变量进行更改,需要进行声明 samp.acquire() #在操作时,获得锁,4个线程都在里边被锁住 time.sleep( 0.001 ) num + = 1 #虽然4个线程同时对num进行加1,但在相加的时候,CPU还是一个一个的加 print ( "%s" % num) samp.release() # 释放锁 #4个线程分别获得的是4份同样的数据,在相加的时候,CPU还是一个一个的加 samp = threading.BoundedSemaphore( 4 ) #统一时间可以允许多少个线程可以同时去操作,比如这里为4,也就是统一时间可以有4个线程 #启动一百个线程,也就是说这100个线程同时运行rusn函数 for i in range ( 200 ): t = threading.Thread(target = runs,) t.start() |
转载地址:http://gsuhl.baihongyu.com/