fork download
  1. // package demo;
  2.  
  3. import java.util.Scanner;
  4.  
  5. public class Main {
  6. // public static Scanner scanner = new Scanner(System.in);
  7. static class SharedData{
  8. public boolean shared = false;
  9. public int a,b;
  10. }
  11. static class ThreadOne extends Thread{
  12. final SharedData sharedData;
  13. public ThreadOne(SharedData sharedData){
  14. this.sharedData = sharedData;
  15. }
  16.  
  17. @Override
  18. public void run() {
  19. Scanner scanner = new Scanner(System.in);
  20. while (true){
  21. synchronized (sharedData){
  22. if(sharedData.shared){
  23. try {
  24. sharedData.wait();
  25. } catch (InterruptedException e) {
  26. e.printStackTrace();
  27. }
  28. }else{
  29. System.out.print("Enter the first number: ");
  30. sharedData.a = scanner.nextInt();
  31. System.out.print("Enter the second number: ");
  32. sharedData.b = scanner.nextInt();
  33. sharedData.shared = true;
  34. sharedData.notify();
  35. }
  36. }
  37. }
  38. }
  39. }
  40.  
  41. static class ThreadTwo extends Thread{
  42. final SharedData sharedData;
  43.  
  44. public ThreadTwo(SharedData sharedData){
  45. this.sharedData = sharedData;
  46. }
  47.  
  48. @Override
  49. public void run() {
  50. while(true){
  51. synchronized (sharedData){
  52. if(sharedData.shared){
  53. System.out.println("Addition result: " + (sharedData.a+sharedData.b));
  54. sharedData.shared = false;
  55. sharedData.notify();
  56. }
  57. try {
  58. sharedData.wait();
  59. } catch (InterruptedException e) {
  60. e.printStackTrace();
  61. }
  62. }
  63. }
  64. }
  65. }
  66.  
  67. public static void main(String[] args) throws InterruptedException {
  68. SharedData sharedData = new SharedData();
  69. ThreadOne t1 = new ThreadOne(sharedData);
  70. ThreadTwo t2 = new ThreadTwo(sharedData);
  71. t1.start();
  72. t2.start();
  73. // t1.join();
  74. // t2.join();
  75. }
  76. }
  77.  
Time limit exceeded #stdin #stdout #stderr 5s 36488KB
stdin
Standard input is empty
stdout
Enter the first number: 
stderr
Exception in thread "Thread-0" java.util.NoSuchElementException
	at java.base/java.util.Scanner.throwFor(Scanner.java:937)
	at java.base/java.util.Scanner.next(Scanner.java:1594)
	at java.base/java.util.Scanner.nextInt(Scanner.java:2258)
	at java.base/java.util.Scanner.nextInt(Scanner.java:2212)
	at Main$ThreadOne.run(Main.java:30)