Java終了タイマタスク


あるタイマータスクはシステムの起動に伴って常に開いているが、あるタイマータスクはタスクの処理が完了するとシステムリソースを解放するために回収する必要があるので、どのようにタイマータスクを終了しますか?
タイマタスクは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ありがとうございます.