对不起,另一个模糊的例子......但我在那里我开始一个新的线程实例的类。但是,如果我添加一个新的线程实例,它将中断(destroy操作?)所述第一

但是,如果我运行类的两个实例(分别,我把它们变成以后的jar文件),其中每个实例只打开了一个单独的线程,他们都同时和运行正常。

我相信错误是我实现多线程的方式。

有关的事情,寻找有什么建议?谢谢!遗憾的模糊的例子。

有帮助吗?

解决方案

您不能假设一个任意类是线程安全的。

一类的的作者应是明确的关于他们的类的线程安全的,但它是非常普遍的,他们不知道。鉴于环境如servlet可以是本质上多功能使用线程这可以是一个实际问题。

您需要研究类和发现,如果有的话,方法是线程安全的。这可能是该类InstanceOfClassIDontControl有越来越的多线程访问混淆静态变量。如果你不但不控制类,但甚至不能看到它的来源,那么你将需要业主的支持。

其他提示

确定,这里是一个例子:

public class driver {

    public static void main(String args[])
    {
        Thread x;
        Thread y;

        x = new Thread(new pow());
        y = new Thread(new pow());

        x.start();
        y.start();  
    }
}

public class pow extends Thread {

    public void run() {
        InstanceOfClassIDontControl a = new InstanceOfClassIDontControl();
                a.doVariousProcesses();
    }
}

在该示例中,I(显然)不控制,其实例被创建,并呼吁在线程的类。每个线程可用于分钟。但每当并发线程运行(在这种情况下,与y.start()),它破坏了对象的调用x.start的run()的实例的动作()。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top