python自学计划-线程锁-20

使用线程锁的方式很简单(可能是我不了解其他方式)
需要用到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
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容