2013年5月14日 星期二

[Batch] if exist路徑寫法;解決if else皆跑到的bug

IF EXIST的語法如下
IF EXIST "[PATH]" (
  echo a
) ELSE (
  echo b
)

A. PATH為已知路徑
 ex: C:\demo

1. 在xp更舊版本(實際版本不詳),必須在path前後,加雙引號
 ex: IF EXIST "C:\demo"
2. 在xp之後,在path前後可不加雙引號
 ex: IF EXIST C:\demo
3. 但路徑若有空白,則必須加雙引號




B. PATH為變數+字串的路徑
 ex: set apk_path="C:\demo"
  %apk_path%child_path

1. 在win7 sp1(6.1.7601)版本之後,可直接使用%變數%字串
 ex: IF EXIST %apk_path%child_path
2. 在win7(6.1.7600)版本及更舊,必須使用"%變數%字串"
 ex: IF EXIST "%apk_path%child_path"

2013年5月11日 星期六

[Java] Two-phase Termination

小朋友總是把玩具散落一地. 晚上到了睡覺時間, 媽媽會說 “快把玩具收好, 再去睡覺喔”, 這時小朋友停下來不玩並開始收拾玩具.

開一條thread,在thread中判斷何時要終止自己的thread
並在終止之前做一些處理



※補充說明 :
不可以使用 Thread 類的 stop 方法: java.lang.Thread 類有一個用來強制結束掉線程的stop 方法. 但是現在stop 已經不被建議使用 (depreciated). 原因是 stop 方法會使實例喪失安全性的保障. 使用 stop 方法時, 線程會拋出 java.lang. ThreadDeath 異常而馬上結束. 即使線程再執行某些 critical process.

refs1: http://openhome.cc/Gossip/DesignPattern/TwoPhaseTermination.htm
refs2: http://puremonkey2010.blogspot.tw/2010/10/java-two-phase-termination-pattern.html