我有一个类,需要不时生成一个密钥,并将其与客户端和服务器共享。
Kdc类别:
protected Kdc() {
(do stuff)
runKdc();
}
private void runKdc(){
for(;;){
generateKey();
informClients();
informServers();
try {
Thread.sleep(generationTime);
} catch (InterruptedException e) {
System.out.println("Sleep Interrupted");
}
}
}
主班:
public static void main(String[] args) {
Kdc kdc = new Kdc();
System.out.println("done"); //Doesn't reach the line
}
现在我的问题是,在开始Kdc类后,我需要做一些事情,而我做不到!由于存在无限循环,因此在启动Kdc类后,它只会卡在Main类中。
有任何想法吗?
谢谢。
最佳答案
正如其他人所说,您应该在自己的线程中创建Kdc,例如
package com.testingarea;
class Kdc {
public Kdc() {
runKdc();
}
private void runKdc() {
while(true) {
System.out.println("Running kdc");
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
class RunKdc implements Runnable {
@Override
public void run() {
Kdc k = new Kdc();
}
}
public class TestThread {
public static void main(String[] args) {
new Thread(new RunKdc()).start();
System.out.println("Kdc thread started");
}
}