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益智游戏计算汉诺塔问题示例
Mar 05 Python
python得到单词模式的示例
Oct 15 Python
PyQt 图解Qt Designer工具的使用方法
Aug 06 Python
Python 在OpenCV里实现仿射变换—坐标变换效果
Aug 30 Python
Python pandas.DataFrame 找出有空值的行
Sep 09 Python
PyTorch里面的torch.nn.Parameter()详解
Jan 03 Python
Python 安装 virturalenv 虚拟环境的教程详解
Feb 21 Python
Django权限设置及验证方式
May 13 Python
最新Python idle下载、安装与使用教程图文详解
Nov 28 Python
如何使用python-opencv批量生成带噪点噪线的数字验证码
Dec 21 Python
python 三边测量定位的实现代码
Apr 22 Python
Python实现提取PDF简历信息并存入Excel
Apr 02 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
function.inc.php超越php
2006/12/09 PHP
IIS6+PHP5+MySQL5+Zend Optimizer+phpMyAdmin安装配置图文教程 2009年
2009/06/08 PHP
PHP树-不需要递归的实现方法
2016/06/21 PHP
Gird事件机制初级读本
2007/03/10 Javascript
jQuery弹出层插件Lightbox_me使用指南
2015/04/21 Javascript
实例解析jQuery插件EasyUI最常用的表单验证规则
2015/11/29 Javascript
浅谈js图片前端预览之filereader和window.URL.createObjectURL
2016/06/30 Javascript
基于angularJS的表单验证指令介绍
2016/10/21 Javascript
实例浅析js的this
2016/12/11 Javascript
jQuery仿写百度百科的目录树
2017/01/03 Javascript
JS日程管理插件FullCalendar中文说明文档
2017/02/06 Javascript
Ext JS 实现建议词模糊动态搜索功能
2017/05/13 Javascript
JavaScript中的FileReader图片预览上传功能实现代码
2017/07/24 Javascript
利用js实现前后台传送Json的示例代码
2018/03/29 Javascript
浅谈angularJS2中的界面跳转方法
2018/08/31 Javascript
小程序实现搜索框
2020/06/19 Javascript
JS实现基本的网页计算器功能示例
2020/01/16 Javascript
js实现复制粘贴的两种方法
2020/12/04 Javascript
原生js实现移动小球(碰撞检测)
2020/12/17 Javascript
Python编程之微信推送模板消息功能示例
2017/08/21 Python
Python中import机制详解
2017/11/14 Python
详解python实现线程安全的单例模式
2018/03/05 Python
python spyder中读取txt为图片的方法
2018/04/27 Python
python中的不可变数据类型与可变数据类型详解
2018/09/16 Python
Python 限定函数参数的类型及默认值方式
2019/12/24 Python
Python工程师必考的6个经典面试题
2020/06/28 Python
美国精油公司:Plant Therapy
2019/05/17 全球购物
迪士尼英国官方商店:shopDisney UK
2019/09/21 全球购物
人力资源管理专业自荐书范文
2014/02/10 职场文书
技术总监管理职责范本
2014/03/06 职场文书
党员干部观看《周恩来四个昼夜》思想汇报
2014/09/10 职场文书
介绍信样本
2015/01/31 职场文书
初中军训感想
2015/08/07 职场文书
CocosCreator ScrollView优化系列之分帧加载
2021/04/14 Python
OpenCV中resize函数插值算法的实现过程(五种)
2021/06/05 Python
Android中View.post和Handler.post的关系
2022/06/05 Java/Android