美文网首页
python自学计划-线程锁-20

python自学计划-线程锁-20

作者: 你缺少想象力 | 来源:发表于2018-12-13 04:16 被阅读2次

使用线程锁的方式很简单(可能是我不了解其他方式)
需要用到threading.Lock()
然后调用相关方法:

lock = threading.Lock()
lock.acquire() # 得到锁
# 中间操作
lock.release() # 释放锁

例子:

import threading
import time

global counter
counter = 0

lock = threading.Lock()


class myThread(threading.Thread):

    def __init__(self):
        threading.Thread.__init__(self)

    def run(self):
        global counter
        while True:
            if counter >= 15:
                break
            lock.acquire()
            counter += 1
            lock.release()
            print("线程名:%s,计数器:%s" % (self.name, counter))

            time.sleep(0.1)


thread1 = myThread()
thread2 = myThread()
thread1.start()
thread2.start()

运行结果:

线程名:Thread-1,计数器:1
线程名:Thread-2,计数器:2
线程名:Thread-2,计数器:3
线程名:Thread-1,计数器:4
线程名:Thread-2,计数器:5
线程名:Thread-1,计数器:6
线程名:Thread-1,计数器:7
线程名:Thread-2,计数器:8
线程名:Thread-1,计数器:9
线程名:Thread-2,计数器:10
线程名:Thread-1,计数器:11
线程名:Thread-2,计数器:12
线程名:Thread-1,计数器:13
线程名:Thread-2,计数器:14
线程名:Thread-1,计数器:15

相关文章

  • python自学计划-线程锁-20

    使用线程锁的方式很简单(可能是我不了解其他方式)需要用到threading.Lock()然后调用相关方法: 例子:...

  • 孤荷凌寒自学python第四十天python 的线程锁RLock

    孤荷凌寒自学python第四十天python的线程锁RLock (完整学习过程屏幕记录视频地址在文末,手写笔记在文...

  • 孤荷凌寒自学python第三十九天python 的线程锁Lock

    孤荷凌寒自学python第三十九天python的线程锁Lock (完整学习过程屏幕记录视频地址在文末,手写笔记在文...

  • python自学计划-多线程-18

    python中的多线程跟Java还是很像的 先说说怎么启动一个线程吧 首先要创建一个继承threading.Thr...

  • python之多线程与多进程入门

    python之多线程与多进程 关键词: GIL锁,IO繁忙,线程安全,线程同步,进程池,进程通信,队列 GIL锁;...

  • python多线程

    python基础之多线程锁机制 GIL(全局解释器锁) GIL并不是Python的特性,它是在实现Python解析...

  • GIL线程全局锁

    线程全局锁(Global Interpreter Lock),即Python为了保证线程安全而采取的独立线程运行的...

  • Python_提高

    GIL全局解释器锁 描述Python GIL的概念, 以及它对python多线程的影响?编写⼀个 多线程抓取⽹⻚的...

  • Python:线程锁

    多线程之间的切换是操作系统智能分配的,当需要某个线程完成特定的任务后才能切换到下一个线程时,就引入了LOCK(锁)...

  • python 线程锁

    锁是解决临界区资源的问题,保证每一个线程访问临界资源的时候有全部的权利 一旦某个线程获得锁, 其它试图获取锁的线程...

网友评论

      本文标题:python自学计划-线程锁-20

      本文链接:https://www.haomeiwen.com/subject/drnmhqtx.html