3
我有一個線程可以從執行開始每秒打印經過時間,另一個線程每15秒打印一條消息。第一個線程應該更新線程之間共享的時間變量,並在每次更新時間變量時通知其他線程讀取時間變量。這是我目前的:Java通知其他線程
public class PingPong implements Runnable
{
private static final int REPETITIONS = 4;
String curName = "";
int currentTime = 0;
Thread t1;
Thread t2;
PingPong() {
t1 = new Thread(this, "Admin");
t1.start();
t2 = new Thread(this, "Admin1");
t2.start();
}
public void run() {
try {
curName = Thread.currentThread().getName();
if(curName.equals(t1.getName())){
for (int i=1; i<REPETITIONS; i++) {
System.out.println(Thread.currentThread().getName() + ": " + i);
Thread.sleep(1000);
// System.out.println(Thread.currentThread().getName() + ":" + Thread.currentThread().getState());
System.out.println(t1.getName());
currentTime++;
}
}
/*else if(curName == t2){
System.out.println("Thread 2");
}*/
System.out.println(currentTime);
} catch (InterruptedException e) {
return; // end this thread
}
}
public static void main(String[] args) {
new PingPong();
}
}
我是非常新的線程,我不知道如果我正在實施我已經正確的。另外,我不知道如何通知另一個線程。我覺得我現在不在正確的道路上。
如果有人有任何幫助,它真的很感激!
我的問題正確地得到你的問題,以及我從你的問題中瞭解到的是你需要'線程來溝通自己'。查看[Java併發](http://www.vogella.com/articles/JavaConcurrency/article.html)和[Java Callable](http://www.journaldev.com/1090/java-callable-future-example ) –