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 相关文章推荐
SublimeText 2编译python出错的解决方法(The system cannot find the file specified)
Nov 27 Python
python使用win32com在百度空间插入html元素示例
Feb 20 Python
python实现图书管理系统
Mar 12 Python
python数字图像处理之高级形态学处理
Apr 27 Python
Python中偏函数用法示例
Jun 07 Python
只需7行Python代码玩转微信自动聊天
Jan 27 Python
Python中注释(多行注释和单行注释)的用法实例
Aug 28 Python
python库matplotlib绘制坐标图
Oct 18 Python
公认8个效率最高的爬虫框架
Jul 28 Python
如何真正的了解python装饰器
Aug 14 Python
浅谈Selenium+Webdriver 常用的元素定位方式
Jan 13 Python
python中Tkinter 窗口之输入框和文本框的实现
Apr 12 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 将bmp图片转为jpg等其他任意格式的图片
2009/06/29 PHP
PHP手机号码归属地查询代码(API接口/mysql)
2012/09/04 PHP
通过table标签,PHP输出EXCEL的实现方法
2013/07/24 PHP
浅谈PHP调用Webservice思路及源码分享
2014/06/04 PHP
php处理json格式数据经典案例总结
2016/05/19 PHP
php UNIX时间戳用法详解
2017/02/16 PHP
PHP大文件分割上传 PHP分片上传
2017/08/28 PHP
PHP实现微信提现功能
2018/09/30 PHP
10个实用的脚本代码工具
2010/05/04 Javascript
JS防止用户多次提交的简单代码
2013/08/01 Javascript
如何实现修改密码时密码框显示保存到cookie的密码
2013/12/10 Javascript
css3元素简单的闪烁效果实现(html5 jquery)
2013/12/28 Javascript
深入浅析JavaScript中数据共享和数据传递
2016/04/25 Javascript
浅析Javascript中bind()方法的使用与实现
2016/05/30 Javascript
浅谈js中的延迟执行和定时执行
2016/05/31 Javascript
vue页面加载闪烁问题的解决方法
2018/03/28 Javascript
vue的常用组件操作方法应用分析
2018/04/13 Javascript
微信小程序页面间值传递的两种方法
2018/11/26 Javascript
微信小程序tab切换可滑动切换导航栏跟随滚动实现代码
2019/09/04 Javascript
[05:39]2014DOTA2西雅图国际邀请赛 淘汰赛7月14日TOPPLAY
2014/07/14 DOTA
[45:18]完美世界DOTA2联赛循环赛 PXG vs IO 第二场 11.06
2020/11/09 DOTA
python mysqldb连接数据库
2009/03/16 Python
深入浅析python定时杀进程
2016/06/06 Python
Python使用matplotlib绘制三维参数曲线操作示例
2019/09/10 Python
使用python绘制二维图形示例
2019/11/22 Python
Python基于WordCloud制作词云图
2019/11/29 Python
python实现监控阿里云账户余额功能
2019/12/16 Python
python实现吃苹果小游戏
2020/03/21 Python
Django-migrate报错问题解决方案
2020/04/21 Python
推荐10个CSS3 制作的创意下拉菜单效果
2014/02/11 HTML / CSS
浅谈CSS3中的变形功能-transform功能
2017/12/27 HTML / CSS
十八大演讲稿
2014/05/22 职场文书
小学竞选班长演讲稿
2014/09/09 职场文书
教师师德考核自我评价
2014/09/13 职场文书
公安机关正风肃纪剖析材料
2014/10/10 职场文书
2015暑期社会实践通讯稿
2015/07/18 职场文书