此代码创建并启动一个帖子:
new Thread() {
@Override
public void run() {
try { player.play(); }
catch ( Exception e ) { System.out.println(e); }
}
}.start();
我想修改此代码,以便线程仅在当时没有其他线程打开时才会启动!如果有我想关闭它们,并开始这个。
答案 0 :(得分:37)
您可以创建ExecutorService
,只允许使用Executors.newSingleThreadExecutor
方法的单个帖子。获得单线程执行程序后,可以使用execute
参数调用Runnable
:
Executor executor = Executors.newSingleThreadExecutor();
executor.execute(new Runnable() { public void run() { /* do something */ } });
答案 1 :(得分:-6)
你可以为类创建一个静态数据成员(发生线程的地方),每次调用该类的对象时,该成员都会递增,读取它并获得启动的线程数