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查询Mysql时返回字典结构的代码
Jun 18 Python
零基础写python爬虫之神器正则表达式
Nov 06 Python
python实现简单socket程序在两台电脑之间传输消息的方法
Mar 13 Python
python读取json文件并将数据插入到mongodb的方法
Mar 23 Python
将Emacs打造成强大的Python代码编辑工具
Nov 20 Python
Windows 8.1 64bit下搭建 Scrapy 0.22 环境
Nov 18 Python
Python玩转PDF的各种骚操作
May 06 Python
python pandas获取csv指定行 列的操作方法
Jul 12 Python
python 命名规范知识点汇总
Feb 14 Python
django日志默认打印request请求信息的方法示例
May 17 Python
基于Python pyecharts实现多种图例代码解析
Aug 10 Python
matplotlib如何设置坐标轴刻度的个数及标签的方法总结
Jun 11 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取得一个类的属性和方法的实现代码
2011/05/22 PHP
PHP获取浏览器信息类和客户端地理位置的2个方法
2014/04/24 PHP
PHP检测接口Traversable用法详解
2017/12/29 PHP
微信公众号实现扫码获取微信用户信息(网页授权)
2019/04/09 PHP
PHP使用观察者模式处理异常信息的方法详解
2019/09/24 PHP
用javascript动态调整iframe高度的代码
2007/04/10 Javascript
js 动态修改css文件的方法
2014/08/05 Javascript
JS实现控制表格只显示行边框或者只显示列边框的方法
2015/03/31 Javascript
分享十五款 jQuery 社交网络分享插件
2015/05/16 Javascript
js代码验证手机号码和电话号码是否合法
2015/07/30 Javascript
AngularJS中ng-class用法实例分析
2017/07/06 Javascript
JavaScript利用fetch实现异步请求的方法实例
2017/07/26 Javascript
JS实现TITLE悬停长久显示效果完整示例
2020/02/11 Javascript
JavaScript实现网页跨年倒计时
2020/12/02 Javascript
[05:22]DOTA2 2015国际邀请赛中国区预选赛首日TOP10
2015/05/26 DOTA
Python利用heapq实现一个优先级队列的方法
2019/02/03 Python
python return逻辑判断表达式实现解析
2019/12/02 Python
Pytorch高阶OP操作where,gather原理
2020/04/30 Python
python的json包位置及用法总结
2020/06/21 Python
Python3.7安装pyaudio教程解析
2020/07/24 Python
Python如何读取、写入JSON数据
2020/07/28 Python
Python类class参数self原理解析
2020/11/19 Python
HTML5开发动态音频图的实现
2020/07/02 HTML / CSS
Gap工厂店:Gap Factory
2017/11/02 全球购物
旅游管理实习自我鉴定
2013/09/29 职场文书
数学国培研修感言
2014/02/13 职场文书
人力资源经理的岗位职责范本
2014/02/28 职场文书
《月光启蒙》教学反思
2014/03/01 职场文书
学生操行评语大全
2014/04/24 职场文书
物流管理专业自荐信
2014/06/23 职场文书
男性健康日的活动方案
2014/08/18 职场文书
专业技术职务聘任证明
2015/03/02 职场文书
项目备案申请报告
2015/05/15 职场文书
摩登时代观后感
2015/06/03 职场文书
小学英语教师2015年度个人工作总结
2015/10/14 职场文书
python opencv检测直线 cv2.HoughLinesP的实现
2021/06/18 Python