BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          多線程主題

               摘要: 多線程是這樣一種機制,它允許在程序中并發執行多個指令流,每個指令流都稱為一個線程,彼此間互相獨立。

            線程又稱為輕量級進程,它和進程一樣擁有獨立的執行控制,由操作系統負責調度,區別在于線程沒有獨立的存儲空間,而是和所屬進程中的其它線程共享一個存儲空間,這使得線程間的通信遠較進程簡單。

            多個線程的執行是并發的,也就是在邏輯上“同時”,而不管是否是物理上的“同時”。如果系統只有一個CPU,那么真正的“同時”是不可能的,但是由于CPU的速度非???,用戶感覺不到其中的區別,因此我們也不用關心它,只需要設想各個線程是同時執行即可。

            多線程和傳統的單線程在程序設計上最大的區別在于,由于各個線程的控制流彼此獨立,使得各個線程之間的代碼是亂序執行的,由此帶來的線程調度,同步等問題,將在以后探討。  閱讀全文

          posted @ 2007-11-09 01:43 dybjsun 閱讀(204) | 評論 (0)  編輯 |

               摘要: java語言已經內置了多線程支持,所有實現Runnable接口的類都可被啟動一個新線程,新線程會執行該實例的run()方法,當run()方法執行完畢后,線程就結束了。一旦一個線程執行完畢,這個實例就不能再重新啟動,只能重新生成一個新實例,再啟動一個新線程。  閱讀全文

          posted @ 2007-11-09 01:41 dybjsun 閱讀(198) | 評論 (0)  編輯 |

               摘要: 通常,多線程之間需要協調工作。例如,瀏覽器的一個顯示圖片的線程displayThread想要執行顯示圖片的任務,必須等待下載線程downloadThread將該圖片下載完畢。如果圖片還沒有下載完,displayThread可以暫停,當 downloadThread完成了任務后,再通知displayThread“圖片準備完畢,可以顯示了”,這時,displayThread繼續執行。  閱讀全文

          posted @ 2007-11-09 01:40 dybjsun 閱讀(213) | 評論 (0)  編輯 |

               摘要: 前面談了多線程應用程序能極大地改善用戶相應。例如對于一個Web應用程序,每當一個用戶請求服務器連接時,服務器就可以啟動一個新線程為用戶服務。  閱讀全文

          posted @ 2007-11-09 01:38 dybjsun 閱讀(197) | 評論 (0)  編輯 |

               摘要: 當多線程啟動時,怎么才能控制他們有秩序地執行。本例模擬一個容器,當容器里有東西時,通知各個線程來取得這些東西,如果沒有取到東西,則進入等待狀態。(特別注意在通知各個線程notifyAll和等待wait這些方法一定要寫在同步塊中)  閱讀全文

          posted @ 2007-11-09 01:31 dybjsun 閱讀(216) | 評論 (0)  編輯 |

          主站蜘蛛池模板: 湛江市| 宜宾市| 商河县| 应用必备| 晴隆县| 康马县| 安化县| 彭州市| 新营市| 高安市| 武定县| 赣榆县| 安吉县| 怀集县| 略阳县| 阳泉市| 敦化市| 德安县| 常宁市| 金坛市| 穆棱市| 辽宁省| 石柱| 兰州市| 海南省| 栾川县| 准格尔旗| 元江| 昌宁县| 揭东县| 双辽市| 延安市| 鸡东县| 长寿区| 囊谦县| 阿拉善左旗| 濮阳市| 青海省| 承德市| 穆棱市| 嘉善县|