Java中在线程之间传递变量
我在主类中创建了10个相同的线程(仅通过主键1到10区分)。在每个线程中,我需要读取前一个线程中的字段,即在线程5中,我需要读取线程4中的此字段。问题是我怎么做Java中在线程之间传递变量,java,synchronization,Java,Synchronization,我在主类中创建了10个相同的线程(仅通过主键1到10区分)。在每个线程中,我需要读取前一个线程中的字段,即在线程5中,我需要读取线程4中的此字段。问题是我怎么做 public class Player extends Thread { private Integer playerNumber; public char lastDigit; public Player(Integer playerNumber) { super(); this.playerNumber = p
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(){
}
我需要读取最后一个数字字段
提前感谢:)很多选项:)默认情况下,java集合不会同步:
您可以在静态变量/类中创建LinkedBlockingQueue:
- Collections.synchronizedMap(..)
- Collections.synchronizedList(..)
- Collections.synchronizedSet(..)