Re: [J2SE] Thread與Runnable
※ 引述《PttHuge.bbs@ptt.cc (philips768快降吧)》之銘言:
> 我想大家都清楚Thread是一個class
> Runnable為一個interface
> 透過extend thread,或是implement Runnable
> 都可以達到thread of control的功能
> 在Java Threads本書中
> 作者提到Thread與Runnable之間的差別
> 並不只有單純的關於Java中multiple inheritance的問題
> 如果想知道關於Thread與Runnable之間的issue
> 不知道有哪位前輩已經有研究,也歡迎分享一下 ^_^
> 英文太差,上google查竟然查不太到小弟要找的issue >_<
Thread 就是執行緒, 真的是執行 "指令" 的那個東東.
Runnable 則是一個 "能被跑 (執行) 的程式段". 本身是
不會執行的, 得要有能執行 (by invoking run()) 它.
那你要誰去執行它? 就是找一條 thread 了.
用 Runnable 和 Thread 的分別, 是前者你是弄好一個
Command, 讓一個執行者 (Thread) 來執行. 後者則是
弄一個特別的執行者出來跑你早已預定的 Code.
看一看 JDK 5 裡面的 Executor 和 Callable. 其實
Callable 的用意和 Runnable 就差不多 (只是
Callable 加了 return value). 記得見過有些 Thread
Pool 之類的 implementation 也是接受 Runnable的.
簡而言之, Runnable 是一個指令. Thread 是指令執行者
Alien
--
┌─────◆KKCITY◆─────┐▇─┐ 優質連線服務隆/重/豋/場!!
│ bbs.kkcity.com.tw │┴ └─▇ KKADSL 帶你環遊全世界
└──《From:219.77.1.32 》──┘ KKADSL ┴ http://adsl.kkcity.com.tw
--
討論串 (同標題文章)