P2Pファイル転送アプリケーションがバックグラウンドで動作していて、両方のマシンが使用されていないときにのみファイル共有をアクティブ化する必要があります。他のn台に接続された1台のマシンで、共有プログラムがn+1スレッドで次のコードを実行するとします。
/* For eache one of the n peers */
synchronized void upload(Peer p) {
while(p.notFinished()) {
while(isBusy() || p.isBusy())
wait();
p.sendNextMB();
}
}
synchronized void report() {
while(true) {
while(!isBusy()) wait();
for(Peer p: peers) p.sendBusy();
while(isBusy()) wait();
for(Peer p: peers) p.sendIdle();
}
}
私の質問は、一般的な方法で、このプログラムをイベント駆動型の観点からどのように達成できるかということです。そして、どのように、そしてなぜ、それぞれの瞬間に、次に実行されるイベントを選択するのでしょうか?
よろしくお願いします