JWorld@TW the best professional Java site in Taiwan
      註冊 | 登入 | 全文檢索 | 排行榜  

» JWorld@TW » Java SE 討論區 » Threads/Synchronization  

按列印兼容模式列印這個話題 列印話題    把這個話題寄給朋友 寄給朋友   
reply to postflat modego to previous topicgo to next topic
本主題所含的標籤
作者 Thread 與 TimerTask 的偵測與關閉問題
jimwayne





發文: 220
積分: 0
於 2011-11-25 07:51 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
原本發在新手區,不過好像比較應該發在這裡,所以砍掉文章重發 @@

---------------------------------

想請問兩個問題...

1、
小弟有一個 class classA extends Runnable,會在使用者按下按鈕時自動產生一個新的 thread 去執行 A
但是使用者有可能會連續按很多次按鈕,就會造成 classA 會產生很多個 Thread 同時在執行類似的事情
由於需求的關係,不能禁止使用者按按鈕
因此想請問有沒有方法可以知道某個 class 被哪些 Thread 執行呢?
然後在程式執行階段可以因為某個事件觸發
一次把所有執行該 class 的 Thread 全部強制結束掉?

2、
上述的 class A 除了會被按鈕觸發產生新的 thread 以外,它同時還會是 TimerTask 的執行內容
小弟目前的寫法是這樣的結構:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
public class tasks extends TimerTask {
 public void run() {
  classA a = new classA();
  a.execute(); // 執行 execute
 }
}
 
public class classA extends Runnable {
 public void run() {
  execute(); // 執行 execute
 }
 
 // 自己開新的 thread 執行 run()
 public void start() {
  Thread thread = new Thread(this);
  thread.start();
 }
 
 private void execute() {
  ..........
  // execute 執行時會跟其他機器問時間,然後 Thread 會睡著,直到指定時間到達才醒來繼續執行下面的動作
  Thread.sleep(x);
  ..........
 }
}

結構弄的有點複雜 @@
總之用意是 classA 要能被定時執行 execute() 方法
execute() 方法內有一段會跟向其他機器送出 request,然後會得到一個時間的回應
execute() 就會睡著等到那個時間到再醒來開始繼續往下做

但除了定時執行以外還有可能因為使用者按下按鈕的關係而手動觸發 execute()
實際運作時希望能夠檢查 classA 現在是不是正在被執行(已經有 Thread 正在 sleep)的狀態
因為如果定時執行剛好正在執行 classA,手動又按按鈕呼叫一次 classA
就會出現有一個以上的 classA 同時在 sleep
等到時間到以後一起醒來執行同樣的動作,會導致執行結果可能有問題 @@
所以希望手動執行時要檢查是不是有其他的手動/定時執行的 classA 正在運作
如果有的話這一次的手動執行就放棄不執行.....
請問有可能可以做到嗎?

問題好像有點雜,如果需要其他的說明還請回應給予指點!m(_ _)m


jimwayne edited on 2011-11-25 08:14
reply to postreply to post
Java 工作者,但仍然是個初心者.....
話題樹型展開
人氣 標題 作者 字數 發文時間
1250 Thread 與 TimerTask 的偵測與關閉問題 jimwayne 1356 2011-11-25 07:51
1031 Re:Thread 與 TimerTask 的偵測與關閉問題 Saber_Servant 32 2011-12-09 10:05
» JWorld@TW »  Java SE 討論區 » Threads/Synchronization

reply to postflat modego to previous topicgo to next topic
  已讀文章
  新的文章
  被刪除的文章
Jump to the top of page

JWorld@TW 本站商標資訊

Powered by Powerful JuteForum® Version Jute 1.5.8