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

简介:
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  in  range ( 200 ):
     =  threading.Thread(target = runs,)
     t.start()



本文转自 TtrToby 51CTO博客,原文链接:http://blog.51cto.com/freshair/1898718

相关文章
|
10天前
|
安全 Java 调度
Java编程时多线程操作单核服务器可以不加锁吗?
Java编程时多线程操作单核服务器可以不加锁吗?
27 2
|
9天前
|
数据采集 负载均衡 安全
LeetCode刷题 多线程编程九则 | 1188. 设计有限阻塞队列 1242. 多线程网页爬虫 1279. 红绿灯路口
本文提供了多个多线程编程问题的解决方案,包括设计有限阻塞队列、多线程网页爬虫、红绿灯路口等,每个问题都给出了至少一种实现方法,涵盖了互斥锁、条件变量、信号量等线程同步机制的使用。
LeetCode刷题 多线程编程九则 | 1188. 设计有限阻塞队列 1242. 多线程网页爬虫 1279. 红绿灯路口
|
8天前
|
NoSQL 网络协议 Unix
1)Redis 属于单线程还是多线程?不同版本之间有什么区别?
1)Redis 属于单线程还是多线程?不同版本之间有什么区别?
22 1
|
11天前
|
Python
5-5|python开启多线程入口必须在main,从python线程(而不是main线程)启动pyQt线程有什么坏处?...
5-5|python开启多线程入口必须在main,从python线程(而不是main线程)启动pyQt线程有什么坏处?...
|
8天前
|
数据采集 Linux 调度
Python之多线程与多进程
Python之多线程与多进程
16 0
|
9天前
|
并行计算 关系型数据库 MySQL
30天拿下Python之使用多线程
30天拿下Python之使用多线程
22 0
|
9天前
|
Java
COMATE插件实现使用线程池高级并发模型简化多线程编程
本文介绍了COMATE插件的使用,该插件通过线程池实现高级并发模型,简化了多线程编程的过程,并提供了生成结果和代码参考。
|
13天前
|
存储 算法 Java
关于python3的一些理解(装饰器、垃圾回收、进程线程协程、全局解释器锁等)
该文章深入探讨了Python3中的多个重要概念,包括装饰器的工作原理、垃圾回收机制、进程与线程的区别及全局解释器锁(GIL)的影响等,并提供了详细的解释与示例代码。
15 0
|
2天前
|
安全 Python
Python 高级编程:高效读取 txt 文件的技巧与实践
在 Python 中,读取 txt 文件是常见操作。本文介绍了使用 `with` 语句自动管理文件资源、逐行读取文件、读取特定字节范围内容、处理编码问题以及使用缓冲读取提高性能等高级方法,确保代码高效且安全。通过这些技巧,你可以更灵活地处理文件内容,并避免资源泄漏等问题。原文链接:https://www.wodianping.com/app/2024-10/44183.html
32 18
|
3天前
|
机器学习/深度学习 Linux Python
Python编程教学
Python教学
24 13