python 实现两个线程交替执行


Posted in Python onMay 02, 2020

我就废话不多说,直接看代码吧!

import threading
import time

def a():
  while True:
    lockb.acquire()
    print('a')
    locka.release()
    time.sleep(0.5)


def b():
  while True:
    locka.acquire()
    print('b')
    lockb.release()
    time.sleep(0.5)


if __name__ == "__main__":
  locka = threading.Lock()
  lockb = threading.Lock()

  ta = threading.Thread(None, a)
  tb = threading.Thread(None, b)

  locka.acquire()   #保证a先执行

  ta.start()
  tb.start()

获取对方的锁,运行完后释放自己的锁

补充知识:线程同步——两个线程轮流执行python实现

看代码!

import threading
import time
lockA=threading.Lock()
lockB=threading.Lock()
def printA(n):
 if n<0:
  return
 lockA.acquire()
 print("+++")
 lockB.release()
 time.sleep(0.1)
 printA(n-1)
def printB(n):
 if n<0: 
  return
 lockB.acquire()
 print("***")
 lockA.release()
 time.sleep(0.2)
 printB(n-1) 
 
lockB.acquire()
t1=threading.Thread(target=printA,args=(10,))
t2=threading.Thread(target=printB,args=(10,))
t1.start()
t2.start()
t1.join()
t2.join()

找实习,又要回忆起操作系统的东西了。

思想:创建两个锁lockA和lockB。每次执行完后,锁掉自己的锁,并释放对方的锁。

初始时,若A先运行,则释放A的锁,锁住B的锁。

以上这篇python 实现两个线程交替执行就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python中threading超线程用法实例分析
May 16 Python
Python多线程结合队列下载百度音乐的方法
Jul 27 Python
python绘制直线的方法
Jun 30 Python
对numpy中的数组条件筛选功能详解
Jul 02 Python
创建Django项目图文实例详解
Jun 06 Python
如何使用python把ppt转换成pdf
Jun 29 Python
Flask框架学习笔记之消息提示与异常处理操作详解
Aug 15 Python
Django 限制访问频率的思路详解
Dec 24 Python
python集合删除多种方法详解
Feb 10 Python
python zip()函数的使用示例
Sep 23 Python
Numpy中的数组搜索中np.where方法详细介绍
Jan 08 Python
使用Python+OpenCV进行卡类型及16位卡号数字的OCR功能
Aug 30 Python
Python中使用threading.Event协调线程的运行详解
May 02 #Python
浅谈Python3多线程之间的执行顺序问题
May 02 #Python
python继承threading.Thread实现有返回值的子类实例
May 02 #Python
Python3-异步进程回调函数(callback())介绍
May 02 #Python
浅谈Python中threading join和setDaemon用法及区别说明
May 02 #Python
判断Threading.start新线程是否执行完毕的实例
May 02 #Python
python中threading开启关闭线程操作
May 02 #Python
You might like
保存到桌面、设为桌面且带图标的PHP代码
2013/11/19 PHP
php的webservice的wsdl的XML无法显示问题的解决方法
2014/03/11 PHP
jQuery 标题的自动翻转实现代码
2009/10/14 Javascript
JS类的封装及实现代码
2009/12/02 Javascript
javascript下判断一个对象是否具有指定名称的属性的的代码
2010/01/11 Javascript
简单几行JS Code实现IE邮件转发新浪微博
2013/07/03 Javascript
javascript监听鼠标滚轮事件浅析
2014/06/05 Javascript
简单谈谈jQuery(function(){})与(function(){})(jQuery)
2014/12/19 Javascript
在JavaScript中操作时间之getMonth()方法的使用
2015/06/10 Javascript
浅析JS原型继承与类的继承
2016/04/07 Javascript
javascript实现下雨效果
2017/03/27 Javascript
Django+Vue.js搭建前后端分离项目的示例
2017/08/07 Javascript
Three.js中网格对象MESH的属性与方法详解
2017/09/27 Javascript
Vue 中批量下载文件并打包的示例代码
2017/11/20 Javascript
基于vue框架手写一个notify插件实现通知功能的方法
2019/03/31 Javascript
react写一个select组件的实现代码
2019/04/03 Javascript
Vue在 Nuxt.js 中重定向 404 页面的方法
2019/04/23 Javascript
vue下使用nginx刷新页面404的问题解决
2019/08/02 Javascript
vue在线动态切换主题色方案
2020/03/26 Javascript
VUE中setTimeout和setInterval自动销毁案例
2020/09/07 Javascript
解决removeEventListener 无法清除监听的问题
2020/10/30 Javascript
[04:04]显微镜下的DOTA2第六期——电影级别的华丽团战
2014/06/20 DOTA
在Django的视图中使用数据库查询的方法
2015/07/16 Python
python编写分类决策树的代码
2017/12/21 Python
DRF跨域后端解决之django-cors-headers的使用
2019/01/27 Python
Pycharm如何运行.py文件的方法步骤
2020/03/03 Python
matplotlib制作雷达图报错ValueError的实现
2021/01/05 Python
HTML5自定义data-* data(obj)属性和jquery的data()方法的使用
2012/12/13 HTML / CSS
护士毕业实习感言
2014/03/05 职场文书
小学优秀教育工作者事迹材料
2014/05/09 职场文书
数学教研活动总结
2014/07/02 职场文书
文案策划岗位职责
2015/02/11 职场文书
七年级话题作文之执着
2019/11/19 职场文书
导游词之天下银坑景区
2019/11/21 职场文书
python 定义函数 返回值只取其中一个的实现
2021/05/21 Python
详解Python生成器和基于生成器的协程
2021/06/03 Python