Как избежать состояния гонки из этого кода?
есть два потока, один поток предназначен для ввода данных для проверки нечетного или четного числа, а другой - для ввода строки, Как избежать состояния гонки.... заранее спасибо
Что я уже пробовал:
import java.util.Scanner; class Palindrome implements Runnable { Thread t; Palindrome() { t=new Thread(this,"Palindrome"); t.start(); } public void run() { PalindromeTest(); } synchronized void PalindromeTest() { Scanner sc=new Scanner(System.in); System.out.println("Enter a string to check pallindrome : "); String s=sc.nextLine(); String rev=""; int size=s.length()-1; for(int i=0;i<=size;i++) { rev=rev + s.charAt(size-i); } if(rev.equalsIgnoreCase(s)) System.out.println("The string is Pallindrome"); else System.out.println("The string is not palindrome"); notify(); } } class OddEven implements Runnable { Thread t; OddEven() { t=new Thread(this,"Palindrome"); t.start(); } public void run() { try { t.wait(); OddEvenTest(); } catch(InterruptedException e) { System.out.println(e); } } void OddEvenTest() { if(t.wait()) { t.suspend(); } Scanner sc=new Scanner(System.in); System.out.println("Enter a number to check odd or even : "); int s=sc.nextInt(); if(s%2==0) System.out.println("The number "+s+ " is even"); else System.out.println("The number "+s+ " is odd"); } } class TestThread { public static void main(String args[]) { new Palindrome(); new OddEven(); } }