Java終了タイマタスク
あるタイマータスクはシステムの起動に伴って常に開いているが、あるタイマータスクはタスクの処理が完了するとシステムリソースを解放するために回収する必要があるので、どのようにタイマータスクを終了しますか?
タイマタスクはforループまたはwhileループで終了することはできません.プライベート変数を採用するのも適切ではありません.そのため、この方法が見つかりました.
FlagBeanクラスをカプセル化して制御することができます.このFlagBeanのインスタンスは、タイマの内部で他の制御を行い、要するに外部で制御します.次のコードを参照してください.
タイマ制御クラス:
次の方法では、タイマタスクをシミュレートします.
テストクラス
このタイマータスクを終了する方法は個人的には良いと思いますが、不足点を教えてください.O(∩∩)Oありがとうございます.
タイマタスクはforループまたはwhileループで終了することはできません.プライベート変数を採用するのも適切ではありません.そのため、この方法が見つかりました.
FlagBeanクラスをカプセル化して制御することができます.このFlagBeanのインスタンスは、タイマの内部で他の制御を行い、要するに外部で制御します.次のコードを参照してください.
タイマ制御クラス:
package com.feng.control;
/**
*
*/
public class ControlFlag {
private int count;
private boolean flag;
public int getCount() {
return count;
}
public void setCount(int count) {
this.count = count;
}
public boolean isFlag() {
return flag;
}
public void setFlag(boolean flag) {
this.flag = flag;
}
}
次の方法では、タイマタスクをシミュレートします.
package com.feng.operator;
import com.feng.control.ControlFlag;
/**
*
*/
public class Operator {
private ControlFlag control;
public Operator(ControlFlag controlFlag) {
this.control = controlFlag;
}
public void testOperator(int i){
System.out.println(" : " + i );
this.control.setCount(this.control.getCount() + 1) ;
}
public ControlFlag getControl() {
return control;
}
public void setControl(ControlFlag control) {
this.control = control;
}
}
テストクラス
package com.feng.test;
import com.feng.control.ControlFlag;
import com.feng.operator.Operator;
public class TestOutSideControl {
public static void main(String[] args) {
ControlFlag controlFlag = new ControlFlag();
controlFlag.setFlag(true);
controlFlag.setCount(0);
Operator op = new Operator(controlFlag);
while (controlFlag.isFlag()) {
if (controlFlag.getCount() > 20) {
controlFlag.setFlag(false);
continue;
}
op.testOperator(20);
}
}
}
このタイマータスクを終了する方法は個人的には良いと思いますが、不足点を教えてください.O(∩∩)Oありがとうございます.