【发布时间】:2014-06-24 12:10:16
【问题描述】:
在一个非线程安全的类中,你必须避免使用类变量,因为它们可以被不同的线程端执行上下文共享。 但是如果你实例化一个本身有类变量的外部类,这些是线程安全的吗?
在这个例子中,线程之间共享计数器变量是否有风险?
class MyNotThreadSafeClass()
{
private integer sharedvariable;
public void callAnOtherClass()
{
myClass o = new myClass();
System.out.println(o.increment(counter));
}
}
class myClass()
{
private integer counter;
public void increment() { return(counter++); }
}
谢谢你的想法(这个线程安全主题中的文档不是很清楚)。
【问题讨论】:
-
您的代码包含许多错误。一个类在设计上是线程安全的还是不是线程安全的,而不取决于它是如何实例化的。
-
您的 myClass 示例不适合您的问题,它没有类变量。
-
它也没有明确显示任何线程。
标签: java multithreading thread-safety