在Java中引起问题多线程
-
12-09-2019 - |
题
对不起,另一个模糊的例子......但我在那里我开始一个新的线程实例的类。但是,如果我添加一个新的线程实例,它将中断(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()的实例的动作()。
不隶属于 StackOverflow