Related questions
In Python code:
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)
Trending nowThis is a popular solution!
Step by stepSolved in 4 steps with 2 images
- For programming tasks, we can use an Array or an Array List. Describe when using an Array would be a good choice, and Describe when using an Array List would be a better choice. You must start a thread before you can read and reply to other threadsarrow_forwardAssignment 5.py: #Assignment 5 import Queueimport threadingimport timeimport random THREADS = 200 class addingThread (threading.Thread):def __init__(self, l):threading.Thread.__init__(self)self.threadID = 3self.name = "addingThread"self.l = lself.iteration = 0 def run(self):#delay start by a random time between 0 and 0.1 secsleep_time= random.randint(1,1000)/10000.0time.sleep(sleep_time)while self.iteration < len(self.l):#remove the comment for Question 1.3#lock.acquire()self.l[self.iteration] = self.l[self.iteration] +1#remove the comment for Question 1.3#lock.release()self.iteration= self.iteration + 1#remove the comment for Question 1.3 #lock = threading.Lock()workList = range(1,101)threads = [] # Create new threadsthread_num=0while thread_num < THREADS:thread = addingThread(workList)threads.append(thread)thread_num = thread_num +1 # Start threadsfor t in threads:t.start() # Wait for all created threads to finishfor t in threads:t.join() #print final listprint "Final list:...arrow_forwardJAVA PROGRAMMING You are required to create a main class to apply ExecuterService with SingleThreadExecuter. The variable i is integer number and MUST be input from the keyboard. Output should be like this: Please input i: 3 pool-1-thread-1: 1 pool-3-thread-1: 1 pool-3-thread-1: 2 pool-3-thread-1: 3 pool-2-thread-1: 1 pool-2-thread-1: 2 pool-2-thread-1: 3 pool-1-thread-1: 2 pool-1-thread-1: 3 Total = 9Below is the part of code.class Counter public class Counter { private int counter; public void increment(){ counter++; } public void decrement(){ counter--; } synchronized public void myIncrement(){ counter++; } synchronized public void myDecrement(){ counter--; } }arrow_forward
- Hello Can you please help me with this code because I am struggling how do to this, can you please help me this code has to be in C. Write a multithreaded program that calculates various statistical values for a list of numbers. This program will be passed a series of numbers on the command line and will then create three separate worker threads. One thread will determine the average of the numbers, the second will determine the maximum value, and the third will determine the minimum value. For example, suppose your program is passed the integers 90 81 78 95 79 72 85 The program will report The average value is 82 The minimum value is 72 The maximum value is 95 The variables representing the average, minimum, and maximum values will be stored globally. The worker threads will set these values, and the parent thread will output the values once the workers have exited. (We could obviously expand this program by creating additional threads that determine other statistical values, such as...arrow_forwardIn Python code: Put the thread_function on a thread. Put 3 threads into a queue and run the threads. import queuequeue = queue.Queue def thread_function(name): print("Thread %s: starting", name) time.sleep(2) print("Thread %s: finishing", name) # start threads by passing function to Thread constructorfrom pprint import pprintimport threadingimport time def threadfunc(*t): print(">>>>",*t) time.sleep(1) print('[',*t,']') time.sleep(2) print("<<<<",*t) arg1 = ("AAAAAAAA")threadA = threading.Thread(target=threadfunc,args=arg1)threadA.start() arg2 = ("BBBBBBBB")threadB = threading.Thread(target=threadfunc,args=arg2)threadB.start() arg3 = ("CCCCCCCC")threadC = threading.Thread(target=threadfunc,args=arg3)threadC.start() threadA.join()threadB.join()threadC.join() # multiple threadsimport threadingimport time tnames = ('AAAAAAAA','BBBBBBBB','CCCCCCCC')count = len(tnames)threadlist = []count = 3 def threadfunc(*t):...arrow_forwardfrom time import sleep from os import system class Node: def__init__(self, data): self.data=data self.next=None class Stack: def__init__(self): self.top=None defpush(self, data): new_node=Node(data) ifself.topisNone: self.top=new_node else: new_node.next=self.top self.top=new_node defpop(self): ifself.topisNone: returnNone data=self.top.data self.top=self.top.next returndata def dfs(maze, start, end): rows=len(maze) cols=len(maze[0]) visited= [[Nonefor_inrange(cols)] for_inrange(rows)] stack=Stack() stack.push(start) visited[start[0]][start[1]] =start whilestack.top: current=stack.pop() ifcurrent==end: current=visited[current[0]][current[1]] # Retrocede un paso desde el final whilecurrent!=start: ifcurrent!=end: # No reemplace la meta "B" con un punto maze[current[0]][current[1]] ='.' current=visited[current[0]][current[1]] print('\n'.join(''.join(row) forrowinmaze)) # Imprime el laberinto final returnTrue# Termina la ejecución tan pronto como se encuentra el estado objetivo...arrow_forward
- Please can you help me with the code that I have contributed, as I played a role in its development. Please ensure that only my code is utilized. This code should be written in C, and I have provided a portion of it below. Question that I need help with: You need to use the pthread for matrix multiplication. Each thread from the threadpool should be responsible for computing only a partof the multiplication (partial product as shown in the above picture –all Ti(S) are called a partical product). Your main thread should splitthe matrices accordingly and create the partial data arrays that areneeded to compute each Ti. You must create a unique task with thedata and submit it to the job queue. You can compute the partialproducts concurrently as long as you have threads available in thethreadpool. You have to remove the task the from queue and submitto a thread in the threadpool. You should define the number ofthreads to be 5 and keep it dynamic so that we can test the samecode with a...arrow_forwardWrite java code to create a thread by (extending), theprogram create 3 thread that displaying "fatmah" and thenumber of thread that is running.Rewrite the above program by implementing the RunnableInterfacearrow_forwardModify this threading example to use, exclusively, multiprocessing, instead of threading. import threadingimport 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 resourcesaccount1 = 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)...arrow_forward
- Consider the below Java code. import public class Semaphore Demo java.util.concurrent.Semaphore; Semaphore binarySema= new Semaphore (1); public static void main (String args[]) { final SemaphoreDemo sema DemoObj= new Semaphore Demo (); Thread td1= new Thread() ( public void run () { } }} } }; Thread td2= new Thread () { @Override public void run () { sema DemoObj.testMutualExclusion (); } sema DemoObj.testMutualExclusion (); tdl.start(); td2.start (); private void testMutualExclusion () { try { binarySema.acquire(); System.out.println (Thread.currentThread().getName()+ "inside the region of mutual exclusive."); Thread.sleep (1000); } catch (InterruptedException e) { ie.printStackTrace(); } finally ( System.out.println (Thread.currentThread().getName() + "outside the region of mutual exclusive."); What would be the output of the program?arrow_forwardusing System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace LibraryManagment { class Program {// private static int userInput;// need varaible to capture user input = int public static string Title { get; private set; } public static bool IsChecked { get; private set; } //Implement a menu system that allows users to add books, check out books, //and check in books using the console. Use Console.ReadLine() ///to capture user input and Console.WriteLine() for output. static void Main(string[] args) {// provides a cosole interaction for a user while (IsChecked) { Console.WriteLine("\nMenu\n" + "1)Add book\n" + "2)Check Out Book\n" + "3)Check In Book\n" + "4)Exit\n"); Console.Write("Choose your...arrow_forwardMulti-tasking can not be achieved with a single processor machine. True False 2. Async/Await is best for network bound operations while multi-threading and parallel programming is best for CPU-bound operations. True False 3. The following is a characteristic of an async method:The name of an async method, by convention, ends with an "Async" suffix. True False 4. Using asynchronous code for network bound operations can speed up the time needed to contact the server and get the data back. True False 5. Asynchronous programming has been there for a long time but has tremendously been improved by the simplified approach of async programming in C# 5 through the introduction of: The Task class True Falsearrow_forward
- Text book imageDatabase System ConceptsComputer ScienceISBN:9780078022159Author:Abraham Silberschatz Professor, Henry F. Korth, S. SudarshanPublisher:McGraw-Hill EducationText book imageStarting Out with Python (4th Edition)Computer ScienceISBN:9780134444321Author:Tony GaddisPublisher:PEARSONText book imageDigital Fundamentals (11th Edition)Computer ScienceISBN:9780132737968Author:Thomas L. FloydPublisher:PEARSON
- Text book imageC How to Program (8th Edition)Computer ScienceISBN:9780133976892Author:Paul J. Deitel, Harvey DeitelPublisher:PEARSONText book imageDatabase Systems: Design, Implementation, & Manag...Computer ScienceISBN:9781337627900Author:Carlos Coronel, Steven MorrisPublisher:Cengage LearningText book imageProgrammable Logic ControllersComputer ScienceISBN:9780073373843Author:Frank D. PetruzellaPublisher:McGraw-Hill Education