Python实现的多线程同步与互斥锁功能示例


Posted in Python onNovember 30, 2017

本文实例讲述了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()

运行结果:

Python实现的多线程同步与互斥锁功能示例

再分别运行注释中的每一部分代码:

1. 不加锁:

Python实现的多线程同步与互斥锁功能示例

2. 加锁:

Python实现的多线程同步与互斥锁功能示例

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
使用Python下载Bing图片(代码)
Nov 07 Python
Python之Scrapy爬虫框架安装及简单使用详解
Dec 22 Python
Request的中断和ErrorHandler实例解析
Feb 12 Python
python将控制台输出保存至文件的方法
Jan 07 Python
python 求某条线上特定x值或y值的点坐标方法
Jul 09 Python
基于Python的图像数据增强Data Augmentation解析
Aug 13 Python
Django实现文件上传和下载功能
Oct 06 Python
Python发送邮件的实例代码讲解
Oct 16 Python
django ListView的使用 ListView中获取url中的参数值方式
Mar 27 Python
Keras自动下载的数据集/模型存放位置介绍
Jun 19 Python
用python查找统一局域网下ip对应的mac地址
Jan 13 Python
python爬取豆瓣电影TOP250数据
May 23 Python
Python实现按特定格式对文件进行读写的方法示例
Nov 30 #Python
[原创]教女朋友学Python3(二)简单的输入输出及内置函数查看
Nov 30 #Python
Python爬虫实现爬取京东手机页面的图片(实例代码)
Nov 30 #Python
Python编程使用tkinter模块实现计算器软件完整代码示例
Nov 29 #Python
Python科学画图代码分享
Nov 29 #Python
Python中Scrapy爬虫图片处理详解
Nov 29 #Python
Python使用django框架实现多人在线匿名聊天的小程序
Nov 29 #Python
You might like
咖啡知识 除了喝咖啡还有那些知识点
2021/03/06 新手入门
PHP 将逗号、空格、回车分隔的字符串转换为数组的函数
2012/06/07 PHP
PHP 之Section与Cookie使用总结
2012/09/14 PHP
PHP的魔术常量__METHOD__简介
2014/07/08 PHP
Yii框架获取当前controlle和action对应id的方法
2014/12/03 PHP
php用户注册信息验证正则表达式
2015/11/12 PHP
分享PHP源码批量抓取远程网页图片并保存到本地的实现方法
2015/12/01 PHP
php 中奖概率算法实现代码
2017/01/25 PHP
PHP中用Trait封装单例模式的实现
2019/12/18 PHP
JavaScript While 循环基础教程
2007/04/05 Javascript
Mootools 1.2教程(2) DOM选择器
2009/09/14 Javascript
从jQuery.camelCase()学习string.replace() 函数学习
2011/09/13 Javascript
js关于字符长度限制的问题示例探讨
2014/01/24 Javascript
jquery实现页面图片等比例放大缩小功能
2014/02/12 Javascript
Jquery操作js数组及对象示例代码
2014/05/11 Javascript
JS不能跨域借助jquery获取IP地址的方法
2014/08/20 Javascript
json字符串之间的相互转换示例代码
2014/08/21 Javascript
js实现从右向左缓缓浮出网页浮动层广告的方法
2015/05/09 Javascript
分离与继承的思想实现图片上传后的预览功能:ImageUploadView
2016/04/07 Javascript
js定义类的几种方法(推荐)
2016/06/08 Javascript
JavaScript数据操作_浅谈原始值和引用值的操作本质
2016/08/23 Javascript
js控制div层的叠加简单方法
2016/10/15 Javascript
微信小程序“摇一摇”的实例代码
2017/07/20 Javascript
使用js在layui中实现上传图片压缩
2019/06/18 Javascript
vue使用高德地图点击下钻上浮效果的实现思路
2019/10/12 Javascript
Echarts.js无法引入问题解决方案
2020/10/30 Javascript
Python查找函数f(x)=0根的解决方法
2015/05/07 Python
python日期相关操作实例小结
2019/06/24 Python
Python爬取YY评级分数并保存数据实现过程解析
2020/06/01 Python
python解包概念及实例
2021/02/17 Python
python 高阶函数简单介绍
2021/02/19 Python
全球最大的跑步用品商店:Road Runner Sports
2016/09/11 全球购物
UGG雪地靴德国官网:UGG德国
2016/11/19 全球购物
会计专业个人自我鉴定
2014/03/21 职场文书
Nest.js参数校验和自定义返回数据格式详解
2021/03/29 Javascript
Python requests用法和django后台处理详解
2022/03/19 Python