python併發任務(四) 線程安全

import threading

lock = threading.Lock()

class Account:
    def __init__(self, balance):
        self.balance = balance


def draw(account, amount):
    with lock:
        if account.balance >= amount:
            print(threading.current_thread().name, '取錢成功')
        
            account.balance -= amount
            print(threading.current_thread().name, '餘額', account.balance)

        else:
            print(threading.current_thread().name, '取錢失敗, 餘額不足', account.balance)


if __name__ == '__main__':
    account = Account(1000)
    ta = threading.Thread(name='ta', target=draw, args=(account, 800))
    tb = threading.Thread(name='tb', target=draw, args=(account, 800))

    ta.start()
    tb.start()


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章