Exception in thread java.lang.IllegalThreadStateException
比较好理解的抛出:非法线程状态抛出
出现这个问题的原因是:
对一个状态为RUNNABLE的线程再次调用start()方法,或者对一个状态为TERMINATED再次调用start()方法。
总之,在线程的某种状态时做了不合理的操作。
解决原理很简单,启动多个线程即可。
问题例子:
1 @Autowired 2 TcpClientSocketThread clientThread; 3 ...... 4 if (condition){ 5 clientThread.start(); 6 } 7 ......
改正后的例子:
1 // @Autowired 2 // TcpClientSocketThread clientThread; 3 ...... 4 if (condition){ 5 TcpClientSocketThread clientThread = new TcpClientSocketThread(); 6 clientThread.start(); 7 } 8 ......
上善若水,水利万物而不争。