Running標誌--正在處於執行狀態的判斷與記錄


public class RunningState {

    private byte[] mLock = new byte[0];
    private int mRunningCount = 0;
    
    /**
     * @return 是否正在運行狀態
     */
    public boolean isRunning() {
        synchronized (mLock) {
            return mRunningCount != 0;
        }
    }
    
    /**
     * inRunning與outRunning需要成對出現
     */
    public void inRunning() {
        synchronized (mLock) {
            mRunningCount++;
        }
    }
    
    /**
     * inRunning與outRunning需要成對出現
     */
    public void outRunning() {
        synchronized (mLock) {
            if (mRunningCount > 0) {
                mRunningCount--;
            }
        }
    }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章