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实现的多线程同步与互斥锁功能示例
本文实例讲述了Python实现的多线程同步与互斥锁功能.分享给大家供大家参考,具体如下: #! /usr/bin/env python #coding=utf-8 import threading i ...
- python 线程 的类库_python类库32[多线程同步Lock+RLock+Semaphore+Event]
多线程基础:python类库32[多线程同步] 一 多线程同步 由于CPython的python解释器在单线程模式下执行,所以导致python的多线程在很多的时候并不能很好地发挥多核cpu的资源.大部 ...
- python实例方法、类方法、静态方法的区别_Python 实例方法、类方法、静态方法的区别与作用...
Python 实例方法.类方法.静态方法的区别与作用 一.总结 一句话总结: 实例方法:第一个参数必须是实例对象,该参数名一般约定为"self",通过它来传递实例的属性和方法(也可 ...
- python中的return和print的区别_python中return和print的区别(详细)
Huskiesir python最近正在研究.今天,我面临一个问题,那就是,返回和印刷的区别.双方都能输出结果.的区别是什么?闲话少说,看下面的例子.# Code1: def break_words( ...
- python中单引号和双引号的区别_python中单引号和双引号的区别
在Python当中表达字符串既可以使用单引号,也可以使用双引号,那两者有什么区别吗? python单引号和双引号的区别 简单来说,在Python中使用单引号或双引号是没有区别的,都可以用来表示一个字符 ...
- python 输入文件名查找_Python实现的根据文件名查找数据文件功能示例
本文实例讲述了Python实现的根据文件名查找数据文件功能.分享给大家供大家参考,具体如下: #-*- coding: UTF-8 -*- import os import shutil AllFil ...
- python 获取键盘输入、同时有超时的功能_python 获取键盘输入,同时有超时的功能示例...
如下所示: ''' ###get keyboard input and timeout =5 import sys, time, msvcrt def readInput( caption, defa ...
- python查找文件名_Python实现的根据文件名查找数据文件功能示例
这篇文章主要介绍了Python实现的根据文件名查找数据文件功能,涉及Python针对文件与目录的遍历.查询等相关操作技巧,需要的朋友可以参考下 本文实例讲述了Python实现的根据文件名查找数据文件功 ...
- python更改图片中物体的颜色_Python实现去除图片中指定颜色的像素功能示例
Python实现去除图片中指定颜色的像素功能示例 本文实例讲述了Python实现去除图片中指定颜色的像素功能.分享给大家供大家参考,具体如下: 这里用python去除图片白色像素 需要python和p ...
最新文章
- 剑指offer:不用加减乘除做加法
- Apache软件基金会宣布Apache Unom成为顶级项目
- 2018 Spring Team Contest B
- 实验分享:用Python生成个性化二维码
- spring social_Spring Social入门–第2部分
- ihtml2document能不能根据id获取dom_一段监视 DOM 的神奇代码
- VS中监视窗口,即时窗口和输出窗口的使用
- Java Core系列之ConcurrentHashMap实现(JDK 1.7)
- BZOJ3592 : Architext
- PyTorch 1.0 中文文档:torch.distributed
- php header什么意思,php header的用法是什么
- centos7.2如何升级到centos7.3最新版本
- 华为平板m5鸿蒙,华为平板M5系列发布:搭载麒麟960 售价2088元起
- 2019FME博客大赛——FME在室内地图数据构建中的应用
- DataFormatString 的使用
- (转)量化投资发展史:野蛮、乱象、科学
- Rayman的绝顶之路——Leetcode每日一题打卡7
- kali kda安装 linux_KDA-无损音乐下载
- 一级建造师能挂靠到三级资质的企业吗?
- OC和swift混合工程更新库时报:target has transitive dependencies that include statically linked binaries