多线程学习之IllegalThreadStateException错误

刚开始学习多线程的时候出现了IllegalThreadStateException(非法的线程状态异常)这个错误。
经检查发现是同一个线程不能多次执行start()方法。

MyThread mt = new MyThread();
	
	mt.start();
	mt.start();

主要是因为线程有四种状态

**1. 初始状态;

 在调用start()方法之前
  1. 可运行状态;
调用start()方法后,系统为该线程分配除cpu外的所需资源,等待被线程调度选中,获取cpu 的使用权 。
  1. 运行状态
 线程获得cpu执行权,执行程序代码的过程
  1. 阻塞状态
一个正在运行的线程因某种原因不能继续运行时,进入阻塞状态。当sleep()状态超时、join()等待线程终止或者超时、或者I/O处理完毕时,线程重新转入可运行(runnable)状态
  1. 死亡状态
    死亡状态:一个线程的run()运行完毕,stop()方法被调用或者在运行过程中出现了未捕获的异常时,线程进入死亡状态。
    **
    解决方法:
    多创建一个线程对象,再次调用start()方法

你可能感兴趣的:(多线程,java,thread)