python多线程之线程锁三(同一时间允许多个线程)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python多线程之线程锁三(同一时间允许多个线程)相关的知识,希望对你有一定的参考价值。

#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()


本文出自 “运维交流Q群:223843163” 博客,请务必保留此出处http://freshair.blog.51cto.com/8272891/1898718

以上是关于python多线程之线程锁三(同一时间允许多个线程)的主要内容,如果未能解决你的问题,请参考以下文章

python之 多线程

python 并发编程之多线程

PYTHON多线程

C#使用读写锁三句代码简单解决多线程并发写入文件时提示“文件正在由另一进程使用,因此该进程无法访问此文件”的问题

为啥在Python里推荐使用多进程而不是多线程

python多线程之线程锁二(同一时间一个线程获得2把线程锁)