Modify this threading example to use, exclusively, multiprocessing, instead of threading. import threading import time class BankAccount(): def __init__(self, name, balance): self.name = name self.balance = balance def __str__(self): return self.name # These accounts are our shared resources account1 = BankAccount("account1", 100) account2 = BankAccount("account2", 0) class BankTransferThread(threading.Thread): def __init__(self, sender, receiver, amount): threading.Thread.__init__(self) self.sender = sender self.receiver = receiver self.amount = amount def run(self): sender_initial_balance = self.sender.balance sender_initial_balance -= self.amount # Inserting delay to allow switch between threads time.sleep(0.001) self.sender.balance = sender_initial_balance receiver_initial_balance = self.receiver.balance receiver_initial_balance += self.amount # Inserting delay to allow switch between threads time.sleep(0.001) self.receiver.balance = receiver_initial_balance if __name__ == "__main__": threads = [] for i in range(100): threads.append(BankTransferThread(account1, account2, 1)) for thread in threads: thread.start() for thread in threads: thread.join() print(account1.balance) print(account2.balance)
Modify this threading example to use, exclusively, multiprocessing, instead of threading.
import threading
import time
class BankAccount():
def __init__(self, name, balance):
self.name = name
self.balance = balance
def __str__(self):
return self.name
# These accounts are our shared resources
account1 = BankAccount("account1", 100)
account2 = BankAccount("account2", 0)
class BankTransferThread(threading.Thread):
def __init__(self, sender, receiver, amount):
threading.Thread.__init__(self)
self.sender = sender
self.receiver = receiver
self.amount = amount
def run(self):
sender_initial_balance = self.sender.balance
sender_initial_balance -= self.amount
# Inserting delay to allow switch between threads
time.sleep(0.001)
self.sender.balance = sender_initial_balance
receiver_initial_balance = self.receiver.balance
receiver_initial_balance += self.amount
# Inserting delay to allow switch between threads
time.sleep(0.001)
self.receiver.balance = receiver_initial_balance
if __name__ == "__main__":
threads = []
for i in range(100):
threads.append(BankTransferThread(account1, account2, 1))
for thread in threads:
thread.start()
for thread in threads:
thread.join()
print(account1.balance)
print(account2.balance)
![](/static/compass_v2/shared-icons/check-mark.png)
Trending now
This is a popular solution!
Step by step
Solved in 3 steps with 1 images
![Blurred answer](/static/compass_v2/solution-images/blurred-answer.jpg)
![Database System Concepts](https://www.bartleby.com/isbn_cover_images/9780078022159/9780078022159_smallCoverImage.jpg)
![Starting Out with Python (4th Edition)](https://www.bartleby.com/isbn_cover_images/9780134444321/9780134444321_smallCoverImage.gif)
![Digital Fundamentals (11th Edition)](https://www.bartleby.com/isbn_cover_images/9780132737968/9780132737968_smallCoverImage.gif)
![Database System Concepts](https://www.bartleby.com/isbn_cover_images/9780078022159/9780078022159_smallCoverImage.jpg)
![Starting Out with Python (4th Edition)](https://www.bartleby.com/isbn_cover_images/9780134444321/9780134444321_smallCoverImage.gif)
![Digital Fundamentals (11th Edition)](https://www.bartleby.com/isbn_cover_images/9780132737968/9780132737968_smallCoverImage.gif)
![C How to Program (8th Edition)](https://www.bartleby.com/isbn_cover_images/9780133976892/9780133976892_smallCoverImage.gif)
![Database Systems: Design, Implementation, & Manag…](https://www.bartleby.com/isbn_cover_images/9781337627900/9781337627900_smallCoverImage.gif)
![Programmable Logic Controllers](https://www.bartleby.com/isbn_cover_images/9780073373843/9780073373843_smallCoverImage.gif)