[英]Instanciating a thread-safe class from a non thread-safe class
在不是线程安全的类中,必须避免使用类变量,因为它们可以被执行上下文的不同线程共享。 但是,如果实例化一个本身具有类变量的外部类,这些变量是否是线程安全的?
在此示例中,在线程之间共享计数器变量是否存在任何风险?
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++); }
}
如果您有一个主意,谢谢(在此线程安全主题中文档不是很清楚)。
这是可行的,因为您永远不会将o
传递给另一个线程。 因此,没有其他线程可以访问此实例。
常规模式是:如果在多个线程之间共享一个实例,则需要进行某种同步。
如果您不共享实例,那么是否有更多线程也没关系。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.