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中给List添加元素的4种方法分享
Nov 28 Python
Python循环语句之break与continue的用法
Oct 14 Python
Python中内置数据类型list,tuple,dict,set的区别和用法
Dec 14 Python
Python 中 list 的各项操作技巧
Apr 13 Python
python中numpy包使用教程之数组和相关操作详解
Jul 30 Python
python与字符编码问题
May 24 Python
python实现ip地址的包含关系判断
Feb 07 Python
Python类的继承super相关原理解析
Oct 22 Python
利用python+request通过接口实现人员通行记录上传功能
Jan 13 Python
Python实现byte转integer
Jun 03 Python
pycharm代码删除恢复的方法
Jun 26 Python
如何基于python实现单目三维重建详解
Jun 25 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数组式访问接口ArrayAccess用法分析
2017/12/28 PHP
详细分析PHP 命名空间(namespace)
2020/06/30 PHP
50个优秀经典PHP算法大集合 附源码
2020/08/26 PHP
Prototype使用指南之string.js
2007/01/10 Javascript
createElement动态创建HTML对象脚本代码
2008/11/24 Javascript
(function($){...})(jQuery)的意思
2010/07/22 Javascript
jquery实现的一个导航滚动效果具体代码
2013/05/27 Javascript
jQuery实现列表自动循环滚动鼠标悬停时停止滚动
2013/09/06 Javascript
IE8中使用javascript动态加载CSS的解决方法
2014/06/17 Javascript
jQuery实现高亮显示的方法
2015/03/10 Javascript
JavaScript函数内部属性和函数方法实例详解
2016/03/17 Javascript
Angular.js 实现数字转换汉字实例代码
2016/07/14 Javascript
第一次动手实现bootstrap table分页效果
2016/09/22 Javascript
探究Vue.js 2.0新增的虚拟DOM
2016/10/20 Javascript
javascript ES6中箭头函数注意细节小结
2017/02/17 Javascript
ES6模块化的import和export用法方法总结
2017/08/08 Javascript
vue不通过路由直接获取url中参数的方法示例
2017/08/24 Javascript
如何检测JavaScript中的死循环示例详解
2020/08/30 Javascript
跟老齐学Python之大话题小函数(2)
2014/10/10 Python
python替换字符串中的子串图文步骤
2019/06/19 Python
win10环境下配置vscode python开发环境的教程详解
2019/10/16 Python
keras训练曲线,混淆矩阵,CNN层输出可视化实例
2020/06/15 Python
Python 合并拼接字符串的方法
2020/07/28 Python
python爬虫数据保存到mongoDB的实例方法
2020/07/28 Python
英国Zoro工具:手动工具,电动工具和个人防护用品
2016/11/02 全球购物
20世纪40年代连衣裙和复古服装:The Seamstress Of Bloomsbury
2018/07/24 全球购物
几个Shell Script面试题
2014/04/18 面试题
大学生学习自我评价
2014/01/13 职场文书
六一儿童节主持词
2014/03/21 职场文书
营销总经理岗位职责范本
2014/09/02 职场文书
旷课检讨书范文
2014/10/30 职场文书
毕业生学校组织意见
2015/06/04 职场文书
创业计划书之水果店
2019/07/18 职场文书
2019关于垃圾分类处理的调查报告
2019/12/26 职场文书
详细了解java监听器和过滤器
2021/07/09 Java/Android
一次MySQL启动导致的事故实战记录
2021/09/15 MySQL