我只是在玩Java中的线程。我有一个实现可运行的类。关于线程的问题
public class MyThread implements Runnable{
private boolean finished;
//Other variables
public void run(){
//Thread code
}
}
我的理解是,类型MyThread的每个线程都有自己的成员变量的副本,并写入这些成员变量,无需同步。这个假设是否正确?如果正确,访问什么需要同步?有人可以关心给大纲或伪代码。?谢谢。
在这种情况下,所有三个线程(运行x)都看到*相同的*完成字段,所以如果在一个线程中更改了'finished',那么其他两个线程是否会看到更改?或者,这是'volatile'关键字会改变行为的例子吗? – 2010-07-08 07:43:20
@Andreas_D:他们都将使用相同的字段,但没有易变的修饰符,他们可能看不到对方的变化。 – 2010-07-08 07:49:00
接受。但这是否意味着如果线程在不同的实例上运行,什么都不需要同步?或者在相同类型的不同实例上运行的线程之间共享什么? – user378101 2010-07-08 07:52:25