2
我在主类中创建了10个相同的线程(仅通过主键从1到10区分)。在每个线程中,我需要读取前一个线程中的字段,即线程5中的字段。我需要在线程4中读取此字段。问题是,我该怎么做?在Java中的线程之间传递变量
public class Player extends Thread {
private Integer playerNumber;
public char lastDigit;
public Player(Integer playerNumber) {
super();
this.playerNumber = playerNumber;
}
public synchronized char getDigit(){
return this.lastDigit;
}
public synchronized void setDigit(char digit){
massage += digit;
this.lastDigit = digit;
try {
Thread.sleep(1);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
public void run(){
}
我需要阅读lastDigit字段。提前:)
差不多我最喜欢的课程:) – Adam 2012-03-09 22:21:59
为什么你需要一个集合来读取一个数字? – GETah 2012-03-09 22:29:35
非常真实,我编辑说Exchanger可能是最适合他的应用程序。使用交换器,交换方法会阻塞,直到线程之间发生“握手”。所以只要他总是试图与先前的线程交流(认为餐饮哲学家的问题),这是一个不错的选择:) – 2012-03-09 22:38:53