线程(3)

一、将线程封装类

1、代码如下:

import threading
import time 

class Sketch(threading.Thread):
    def run(self):
        for x in range(3):
            print("%s他正在写生"% threading.current_thread())
            time.sleep(1)
            
            
class Reader(threading.Thread):
    def run(self):
        for x in range(3):
            print('%s他在读书'% threading.current_thread())
            time.sleep(1)
            
            
def multi_thread():
    th1 = Sketch()
    th2 = Reader()
    
    th1.start()
    th2.start()
    
    
if __name__ == "__main__":
    multi_thread()
            

二、知识点推荐

1、使用threading.current_thread()可以看到当前线程的信息。
2、使用threading.current_thread()函数便可以看到当前的信息。

三、锁机制

1 原则:
1、把尽量少的和不耗时的代码放到锁中执行。
2、代码执行完成后要记得释放锁。
2 代码如下:

import threading

value = 0

gLock = threading.Lock()


def add_value():
    #如果函数中修改了全局变量,那么需要使用glock关键字进行申明
    global value
    gLock.acquire()
    for x in range(1000000):
        value += 1
    gLock.release()
    print("valued的值是:%d"%value)
    
    
def main():
    for x in range(2):
        th = threading.Thread(target=add_value)
        th.start()
        
        
if __name__ == "__main__":
    main()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值