只有当前没有其他线程打开时,如何创建新线程?

时间:2010-01-16 15:12:16

标签: java multithreading

此代码创建并启动一个帖子:

new Thread() {
    @Override
    public void run() {
        try { player.play(); }
        catch ( Exception e ) { System.out.println(e); }
    }
}.start();

我想修改此代码,以便线程仅在当时没有其他线程打开时才会启动!如果有我想关闭它们,并开始这个。

2 个答案:

答案 0 :(得分:37)

您可以创建ExecutorService,只允许使用Executors.newSingleThreadExecutor方法的单个帖子。获得单线程执行程序后,可以使用execute参数调用Runnable

Executor executor = Executors.newSingleThreadExecutor();
executor.execute(new Runnable() { public void run() { /* do something */ } });

答案 1 :(得分:-6)

你可以为类创建一个静态数据成员(发生线程的地方),每次调用该类的对象时,该成员都会递增,读取它并获得启动的线程数

相关问题