 
        
        
          Добавил:
          
          
        
        
    
            Vanomaj
            
            
            
            
            
            Опубликованный материал нарушает ваши авторские права? Сообщите нам.
          
          Вуз:
          Предмет:
          Файл:lab_3 / mutex_labos
.py#!/usr/bin/env python3
import threading
import time
lock = threading.Lock() # Создаем объект мьютекса
account_balance = [1000]  # Используем список для хранения баланса
print(f"Начальный баланс: {account_balance[0]} единиц")
time.sleep(2)
# пополнение баланса
def businessman1_deposit_money(account_balance, amount):
    lock.acquire() # Захватываем мьютекс перед обращением к общему ресурсу
    account_balance[0] += amount
    print(f"Бизнесмен 1 решает пополнить баланс на {amount} единиц.")
    print(f"Бизнесмен 1 решает завершить работу с банковским счетом")
    lock.release() # Освобождаем мьютекс после завершения работы
    
# проверка баланса
def businessman2_check_balance(account_balance):
    lock.acquire() # Захватываем мьютекс перед обращением к общему ресурсу
    time.sleep(2)
    print("Бизнесмен 2 решает проверить баланс")
    time.sleep(2)
    print(f"Текущий баланс: {account_balance[0]} единиц")
    print(f"Бизнесмен 2 решает завершить работу с банковским счетом")
    lock.release() # Освобождаем мьютекс после завершения работы
# Создаем потоки
businessman1_thread = threading.Thread(target=businessman1_deposit_money, args=(account_balance, 2000))
businessman2_thread  = threading.Thread(target=businessman2_check_balance, args=(account_balance,))
# Запускаем потоки
businessman1_thread.start()
businessman2_thread.start()
print("Сеанс работы с банковским счётом завершен")
          Соседние файлы в папке lab_3
          
      
    
    
    
          