前提・実現したいこと
スレッドを使用したプログラムです。1秒間でエンターキーを押した数を表示するプログラムを作成し実行したのですが、実行すると、下のようなエラー文が出てしまい、かつカウントが1回のみで強制終了してしまいます。どの部分を修正すればうまく実行できるのか、よろしければアドバイスをお願いします。
発生している問題・エラーメッセージ
Enter: Enter: Exception in thread "main" java.lang.IllegalThreadStateException at java.base/java.lang.Thread.start(Thread.java:793) at Sample.main(Sample.java:44) 1
該当のソースコード
Java言語
import java.io.*; class Counter{ private int count = 0; public synchronized void add(){ try{ int temp = count; Thread.sleep(1000); count = temp + 1; } catch(InterruptedException e){ } } public int getCount(){ return count; } } class Worker extends Thread{ Counter counter = new Counter(); public void run(){ counter.add(); System.out.println(counter.getCount()); return; } } class Sample{ public static void main(String[] args) throws NumberFormatException{ Worker worker = new Worker(); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); while(true){ System.out.print("Enter: "); try{ if((br.readLine()).equals("")){ worker.start(); } } catch(IOException e){ System.out.println("error"); } } } }
まだ回答がついていません
会員登録して回答してみよう