问题描述:我同时启动了几个线程(A 、B 、C),但是老是被A独占运行,或者A运行结束之后才会运行B、C。
原因:我使用了匿名方式创建了线程,Thread不要用匿名方式创建,否则会出现第一个线程一直独占CPU。这是匿名对象的原因,匿名对象不是强引用,对象声明生命周期短,当第一条线程执行run之后,二三四条线程应该是被虚拟机回收了。一般多线程都不用匿名对象。
解决办法:用Thread thread = new Thread()来创建线程
问题描述:我同时启动了几个线程(A 、B 、C),但是老是被A独占运行,或者A运行结束之后才会运行B、C。
原因:我使用了匿名方式创建了线程,Thread不要用匿名方式创建,否则会出现第一个线程一直独占CPU。这是匿名对象的原因,匿名对象不是强引用,对象声明生命周期短,当第一条线程执行run之后,二三四条线程应该是被虚拟机回收了。一般多线程都不用匿名对象。
解决办法:用Thread thread = new Thread()来创建线程