国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

多線程

2019-11-18 12:20:53
字體:
來源:轉載
供稿:網友

  在計算機編程中,一個基本的概念就是同時對多個任務加以控制。許多程序設計問題都要求程序能夠停下手頭的工作,改為處理其他一些問題,再返回主進程。可以通過多種途徑達到這個目的。最開始的時候,那些擁有機器低級知識的程序員編寫一些“中斷服務例程”,主進程的暫停是通過硬件級的中斷實現的。盡管這是一種有用的方法,但編出的程序很難移植,由此造成了另一類的代價高昂問題。
  有些時候,中斷對那些實時性很強的任務來說是很有必要的。但還存在其他許多問題,它們只要求將問題劃分進入獨立運行的程序片斷中,使整個程序能更迅速地響應用戶的請求。在一個程序中,這些獨立運行的片斷叫作“線程”(Thread),利用它編程的概念就叫作“多線程處理”。多線程處理一個常見的例子就是用戶界面。利用線程,用戶可按下一個按鈕,然后程序會立即作出響應,而不是讓用戶等待程序完成了當前任務以后才開始響應。
  最開始,線程只是用于分配單個處理器的處理時間的一種工具。但假如操作系統本身支持多個處理器,那么每個線程都可分配給一個不同的處理器,真正進入“并行運算”狀態。從程序設計語言的角度看,多線程操作最有價值的特性之一就是程序員不必關心到底使用了多少個處理器。程序在邏輯意義上被分割為數個線程;假如機器本身安裝了多個處理器,那么程序會運行得更快,毋需作出任何非凡的調校。
  根據前面的論述,大家可能感覺線程處理非常簡單。但必須注重一個問題:共享資源!假如有多個線程同時運行,而且它們試圖訪問相同的資源,就會碰到一個問題。舉個例子來說,兩個進程不能將信息同時發送給一臺打印機。為解決這個問題,對那些可共享的資源來說(比如打印機),它們在使用期間必須進入鎖定狀態。所以一個線程可將資源鎖定,在完成了它的任務后,再解開(釋放)這個鎖,使其他線程可以接著使用同樣的資源。
  java的多線程機制已內建到語言中,這使一個可能較復雜的問題變得簡單起來。對多線程處理的支持是在對象這一級支持的,所以一個執行線程可表達為一個對象。Java也提供了有限的資源鎖定方案。它能鎖定任何對象占用的內存(內存實際是多種共享資源的一種),所以同一時間只能有一個線程使用特定的內存空間。為達到這個目的,需要使用synchronized要害字。其他類型的資源必須由程序員明確鎖定,這通常要求程序員創建一個對象,用它代表一把鎖,所有線程在訪問那個資源時都必須檢查這把鎖。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 神农架林区| 新化县| 漯河市| 改则县| 磐安县| 满城县| 乐至县| 扎鲁特旗| 凉山| 平谷区| 青冈县| 苏尼特右旗| 公安县| 余姚市| 达日县| 黄石市| 虞城县| 沭阳县| 新龙县| 依安县| 德钦县| 梁山县| 周至县| 上虞市| 孝昌县| 延安市| 三江| 阿拉善右旗| 新余市| 城固县| 奇台县| 宁晋县| 黑龙江省| 临湘市| 长葛市| 万安县| 琼结县| 卓资县| 曲水县| 凉城县| 南丰县|