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 字符串操作实现代码(截取/替换/查找/分割)
Jun 08 Python
Python第三方库的安装方法总结
Jun 06 Python
Python类的动态修改的实例方法
Mar 24 Python
Python中安装easy_install的方法
Nov 18 Python
python定时检测无响应进程并重启的实例代码
Apr 22 Python
基于python框架Scrapy爬取自己的博客内容过程详解
Aug 05 Python
python numpy 反转 reverse示例
Dec 04 Python
Python 判断时间是否在时间区间内的实例
May 16 Python
Pytorch通过保存为ONNX模型转TensorRT5的实现
May 25 Python
Python高并发解决方案实现过程详解
Jul 31 Python
浅谈pytorch中stack和cat的及to_tensor的坑
May 20 Python
Python 如何利用ffmpeg 处理视频素材
Nov 27 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
默默小谈PHP&MYSQL分页原理及实现
2007/01/02 PHP
PHP CURL模拟GET及POST函数代码
2010/04/25 PHP
Laravel ORM 数据model操作教程
2019/10/21 PHP
JQuery Tips(2) 关于$()包装集你不知道的
2009/12/14 Javascript
在chrome中window.onload事件的一些问题
2010/03/01 Javascript
javascript 循环读取JSON数据的代码
2010/07/17 Javascript
js中将URL中的参数提取出来作为对象的实现代码
2011/08/16 Javascript
window.event快达到全浏览器支持了,以后使用就方便了
2011/11/30 Javascript
js不完美解决click和dblclick事件冲突问题
2012/07/16 Javascript
浅析JavaScript中的typeof运算符
2013/11/30 Javascript
javascript二维数组转置实例
2015/01/22 Javascript
jQuery Pagination分页插件使用方法详解
2017/02/28 Javascript
vue.js 图片上传并预览及图片更换功能的实现代码
2018/08/27 Javascript
详解vue如何使用rules对表单字段进行校验
2018/10/17 Javascript
彻底揭秘keep-alive原理(小结)
2019/05/05 Javascript
Vue退出登录时清空缓存的实现
2019/11/12 Javascript
js实现动态时钟
2020/03/12 Javascript
JavaScript实现简单进度条效果
2020/03/25 Javascript
小程序双头slider选择器的实现示例
2020/03/31 Javascript
javascript实现点击按钮切换轮播图功能
2020/09/23 Javascript
Python实现的简单排列组合算法示例
2018/07/04 Python
Python基本数据结构之字典类型dict用法分析
2019/06/08 Python
python程序文件扩展名知识点详解
2020/02/27 Python
python中Django文件上传方法详解
2020/08/05 Python
Pandas之缺失数据的实现
2021/01/06 Python
python中time包实例详解
2021/02/02 Python
常用的HTML5列表标签
2017/06/20 HTML / CSS
护士自荐信怎么写
2013/10/18 职场文书
银行职业规划书范文
2013/12/28 职场文书
大学生自我鉴定评语
2014/01/27 职场文书
政府法律服务方案
2014/06/14 职场文书
党的群众路线教育实践活动查摆问题自查报告
2014/10/10 职场文书
党员个人党性分析材料
2014/12/18 职场文书
以权谋私检举信范文
2015/03/02 职场文书
话题作文之学会尊重
2019/12/16 职场文书
Python中的turtle画箭头,矩形,五角星
2022/03/16 Python