Computer Science Write the following two programs: Extend the multi-threading Java program to accept a number from the user at any moment, the program should also display the total of entered numbers so far every 2 seconds, and display the product of input numbers so far once every 3 seconds. The Java program should use at least 3 threads. Multi-threaded shared data Main.java public class Main { public static void main(String[] args) { //create the two threads and let them run BusinessLogic businessLogic = new BusinessLogic(); Thread screenUpdaterTh = new Thread(new ScreenUpdater(businessLogic)); Thread inputReaderTh = new Thread(new InputReader(businessLogic)); screenUpdaterTh.start(); inputReaderTh.start(); } } /* Write a program that contineously accepts input from the user and prints a name on the screen every 1 min. */ Input Reader public class InputReader implements Runnable { private BusinessLogic businessLogic; public InputReader(BusinessLogic bl) { businessLogic = bl; } public void run() { businessLogic.inputReader(); }//run } BuisnessLogic.java import java.util.Scanner; public class BusinessLogic { private int input = 0; public void screenUpdater() { while (true) { // update the screen every 1 min System.out.println(Thread.currentThread().getName() + ": " + input); try { Thread.sleep(5000); // 1 minute } catch (InterruptedException ie) { } }//while } public void inputReader() { while (true) { Scanner reader = new Scanner(System.in); input = reader.nextInt(); System.out.println(Thread.currentThread().getName() + "\tinput: " + input); }//while } } ScreenUpdater.java /* Change the screen updater to display the number that has been entered by the user. */ public class ScreenUpdater implements Runnable { private BusinessLogic businessLogic; public ScreenUpdater(BusinessLogic bl) { businessLogic = bl; } public void run() { businessLogic.screenUpdater(); }//run
Computer Science
Write the following two programs:
Extend the multi-threading Java program to accept a number from the user at any moment, the program should also display the total of entered numbers so far every 2 seconds, and display the product of input numbers so far once every 3 seconds. The Java program should use at least 3 threads.
Multi-threaded shared data
Main.java
public class Main {
public static void main(String[] args) {
//create the two threads and let them run
BusinessLogic businessLogic = new BusinessLogic();
Thread screenUpdaterTh = new Thread(new ScreenUpdater(businessLogic));
Thread inputReaderTh = new Thread(new InputReader(businessLogic));
screenUpdaterTh.start();
inputReaderTh.start();
}
}
/*
Write a program that contineously accepts input
from the user and prints a name on the screen
every 1 min.
*/
Input Reader
public class InputReader implements Runnable {
private BusinessLogic businessLogic;
public InputReader(BusinessLogic bl) {
businessLogic = bl;
}
public void run() {
businessLogic.inputReader();
}//run
}
BuisnessLogic.java
import java.util.Scanner;
public class BusinessLogic {
private int input = 0;
public void screenUpdater() {
while (true) {
// update the screen every 1 min
System.out.println(Thread.currentThread().getName() + ": " + input);
try {
Thread.sleep(5000); // 1 minute
} catch (InterruptedException ie) {
}
}//while
}
public void inputReader() {
while (true) {
Scanner reader = new Scanner(System.in);
input = reader.nextInt();
System.out.println(Thread.currentThread().getName() + "\tinput: " + input);
}//while
}
}
ScreenUpdater.java
/*
Change the screen updater to display the number that has
been entered by the user.
*/
public class ScreenUpdater implements Runnable {
private BusinessLogic businessLogic;
public ScreenUpdater(BusinessLogic bl) {
businessLogic = bl;
}
public void run() {
businessLogic.screenUpdater();
}//run
}
Trending now
This is a popular solution!
Step by step
Solved in 2 steps