之前的文章里,我们讨论了在Main::run()中调用的Main::loadConfiguration()方法,
这里将Manager设为一个守护进程,然后我们再看Manager::start()方法,
public void run() {
// 設定を読み込む
loadConfiguration();
// トレイアイコンを作成する
createTrayIcon();
// しめじを一匹作成する
createMascot();
getManager().start();
}
这次我们先来讲getManager.().start(),这里的getManager()方法会返回一个Manger类的实例,首先看Manager的constructor
public Manager() {
// これは Windows 上で動く Java のバグを修正するための処置
// 短い長さの Thread.sleep を頻繁に呼ぶと Windows の時計が狂う
// 長い Thread.sleep を呼んでいるとこの問題を回避できる.
new Thread() {
{
this.setDaemon(true);
this.start();
}
@Override
public void run() {
while (true) {
try {
Thread.sleep(Integer.MAX_VALUE);
} catch (final InterruptedException ex) {
}
}
}
};
}
这里将Manager设为一个守护进程,然后我们再看Manager::start()方法,
/**
* スレッドを開始する.
*/
public voi