以下是代码:
public static void main(String[] args) throws InterruptedException {
Thread t = new Thread(new Runnable() {
public void run() {
while(true){
BufferedReader buffer=new BufferedReader(new InputStreamReader(System.in));
try {
System.out.println(buffer.readLine());
} catch (IOException e) {
e.printStackTrace();
}
}
}
});
t.start();
while(true){
System.out.println("Text");
Thread.sleep(1000);
}
}
我不太确定这样做是否真的安全。这样的代码中是否会出现一些cucncurrency错误?我运行了几个测试,它的工作非常好,但是谁知道在1000000次尝试之后它会如何表现......
答案 0 :(得分:1)
是的,这很安全。如果您查看println
的实施,您会看到代码为synchronized
:
public void println(String x) {
synchronized (this) {
print(x);
newLine();
}
}