python线程同步锁_Python实现的多线程同步与互斥锁功能示例
本文实例讲述了Python实现的多线程同步与互斥锁功能。分享给大家供大家参考,具体如下:
#! /usr/bin/env python
#coding=utf-8
import threading
import time
'''
#1、不加锁
num = 0
class MyThread(threading.Thread):
def run(self):
global num
time.sleep(1) #一定要sleep!!!
num = num + 1
msg = self.name + ' num is ---- ' + str(num)
print msg
def test():
for i in range(10):
s = MyThread() #实例化一个Thread对象,每个Thread对象代表着一个线程
s.start() #通过start()方法,开始线程活动
'''
#'''
class MyThread(threading.Thread):
def run(self):
for i in range(3):
time.sleep(1)
msg = self.name+' @ '+str(i)
print msg
def test():
for i in range(5):
t = MyThread()
t.start()
#'''
'''
#2、加锁
num = 0 #多个线程共享操作的数据
mu = threading.Lock() #创建一个锁
class MyThread(threading.Thread):
def run(self):
global num
time.sleep(1)
if mu.acquire(True): #获取锁状态,一个线程有锁时,别的线程只能在外面等着
num = num + 1
msg = self.name + ' num is ---- ' + str(num)
print msg
mu.release() #释放锁
def test():
for i in range(10):
s = MyThread()
s.start()
'''
if __name__ == '__main__':
test()
运行结果:
再分别运行注释中的每一部分代码:
1. 不加锁:
2. 加锁:
希望本文所述对大家Python程序设计有所帮助。
python线程同步锁_Python实现的多线程同步与互斥锁功能示例相关推荐
- python 线程 的类库_python类库32[多线程同步Lock+RLock+Semaphore+Event]
多线程基础:python类库32[多线程同步] 一 多线程同步 由于CPython的python解释器在单线程模式下执行,所以导致python的多线程在很多的时候并不能很好地发挥多核cpu的资源.大部 ...
- python线程池并发_python 并发编程多线程之进程池/线程池
一.验证GIL锁的存在 Python在设计之初就考虑到要在主循环中,同时只有一个线程在执行.虽然 Python 解释器中可以"运行"多个线程,但在任意时刻只有一个线程在解释器中运行 ...
- python 线程 的类库_python类库32[多线程]
一 python 多线程 因为CPython的实现使用了Global Interpereter Lock(GIL),使得python中同一时刻只有一个线程在执行,从而简化了python解释器的实现,且 ...
- python 输入文件名查找_Python实现的根据文件名查找数据文件功能示例
本文实例讲述了Python实现的根据文件名查找数据文件功能.分享给大家供大家参考,具体如下: #-*- coding: UTF-8 -*- import os import shutil AllFil ...
- python 调整灰度图像对比度_Python实现PS图像调整之对比度调整功能示例
本文实例讲述了Python实现PS图像调整之对比度调整功能.分享给大家供大家参考,具体如下: 这里用 Python 实现 PS 里的图像调整–对比度调整.具体的算法原理如下: (1).nRGB = R ...
- python线程卡死问题解决_Python中的多线程:最后一个线程卡住了
我遇到了一个奇怪的情况,在经历了很多次试射后我还是搞不清楚.我使用多线程(10)来读取url(100),它在大多数情况下都能正常工作,但在某些情况下,它会在最后一个线程上卡住.我等待它看它是否返回,花 ...
- python客户端与服务器端_Python实现的FTP通信客户端与服务器端功能示例
本文实例讲述了Python实现的FTP通信客户端与服务器端功能.分享给大家供大家参考,具体如下: 一 代码 1.服务端代码 import socket import threading import ...
- 【Linux C 多线程编程】互斥锁与条件变量
一.互斥锁 互斥量从本质上说就是一把锁, 提供对共享资源的保护访问. 1) 初始化: 在Linux下, 线程的互斥量数据类型是pthread_mutex_t. 在使用前, 要对它进行初始化: 对于静态 ...
- c# 多线程 --Mutex(互斥锁) 【转】
互斥锁(Mutex) 互斥锁是一个互斥的同步对象,意味着同一时间有且仅有一个线程可以获取它. 互斥锁可适用于一个共享资源每次只能被一个线程访问的情况 函数: //创建一个处于未获取状态的互斥锁 Pub ...
最新文章
- laravel安装笔记 (转)
- @ComponentScan.Filter type的类型
- linux,apache,php,mysql常用的查看版本信息的方法
- 基于java的线上购物系统的设计与实现_基于javaweb的在线购物系统的设计与实现...
- 奥运22日看点:女乒女曲有望夺金 皮划艇全线出击
- Java中汉字生成拼音首拼和五笔码实例
- XML学习之应用范围
- 域名使用https访问配置
- 中国邮路算法(中国邮递员问题)(详细)
- ddns文件服务器,DDNS基础配置
- CF1296E1——String Coloring (easy version)
- Enhancing the Transferability of Adversarial Attacks through Variance Runing
- 阿里云视频上传到抖音服务器
- 拼多多客户差评回复话术
- Nacos只发现不注册
- 技术 | 脑电的现在与未来
- 使用fiddler代替charles将react中的axios请求重定向到本地文件,兼容谷歌浏览器chrome
- IT运维的几个关键绩效指标
- 学习vue源码(14)就慢慢由表入里学习diff
- 点击内容进行查询详情
热门文章
- LINUX下邮件服务器
- 日记 [2007年01月24日]服务器加强安全
- golang sync.Map 使用
- php5.5.9 新特性,php,_PHP 5.5.9版本中COOKIE的奇怪现象,php - phpStudy
- python seek tell_Python指针seektell详解
- Shell中常用的通配符
- linux命令行ps1变量_利用Shell中变量PS1定制Linux Shell命令主提示符
- pythin怎么根据月份获取月初和月末_信息流是什么?到底应该怎么去做?
- c语言文件查找函数fread,文件函数fread
- mysql oracle 查询语句执行顺序_MySQL sql语句执行顺序