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

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

Java 程序中的多線程(一)

2019-11-18 10:47:34
字體:
來源:轉載
供稿:網友

  作者: Neel V. Kumar
  程序中使用多線程要比在 C 或 C++ 中輕易得多,這是因為 java 編程語言提供了語言級的支持。本文通過簡單的編程示例來說明 Java 程序中的多線程是多么直觀。讀完本文以后,用戶應該能夠編寫簡單的多線程程序。
  為什么會排隊等待?
  下面的這個簡單的 Java 程序完成四項不相關的任務。這樣的程序有單個控制線程,控制在這四個任務之間線性地移動。此外,因為所需的資源 — 打印機、磁盤、數據庫和顯示屏 -- 由于硬件和軟件的限制都有內在的潛伏時間,所以每項任務都包含明顯的等待時間。因此,程序在訪問數據庫之前必須等待打印機完成打印文件的任務,等等。假如您正在等待程序的完成,則這是對計算資源和您的時間的一種拙劣使用。改進此程序的一種方法是使它成為多線程的。
  四項不相關的任務
  class myclass {
  static public void main(String args[]) {
  PRint_a_file();
  manipulate_another_file();
  access_database();
  draw_picture_on_screen();
  }
  }
  在本例中,每項任務在開始之前必須等待前一項任務完成,即使所涉及的任務毫不相關也是這樣。但是,在現實生活中,我們經常使用多線程模型。我們在處理某些任務的同時也可以讓孩子、配偶和父母完成別的任務。例如,我在寫信的同時可能打發我的兒子去郵局買郵票。用軟件術語來說,這稱為多個控制(或執行)線程。
  可以用兩種不同的方法來獲得多個控制線程:
  1、多個進程
  在大多數操作系統中都可以創建多個進程。當一個程序啟動時,它可以為即將開始的每項任務創建一個進程,并答應它們同時運行。當一個程序因等待網絡訪問或用戶輸入而被阻塞時,另一個程序還可以運行,這樣就增加了資源利用率。但是,按照這種方式創建每個進程要付出一定的代價:設置一個進程要占用相當一部分處理器時間和內存資源。而且,大多數操作系統不答應進程訪問其他進程的內存空間。因此,進程間的通信很不方便,并且也不會將它自己提供給輕易的編程模型。
  2、線程
  線程也稱為輕型進程 (LWP)。因為線程只能在單個進程的作用域內活動,所以創建線程比創建進程要廉價得多。這樣,因為線程答應協作和數據交換,并且在計算資源方面非常廉價,所以線程比進程更可取。線程需要操作系統的支持,因此不是所有的機器都提供線程。Java 編程語言,作為相當新的一種語言,已將線程支持與語言本身合為一體,這樣就對線程提供了強健的支持。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 安溪县| 南通市| 卢龙县| 嫩江县| 阿坝县| 南岸区| 清远市| 双城市| 腾冲县| 杭州市| 从化市| 同江市| 石泉县| 读书| 新竹县| 新昌县| 灌南县| 五莲县| 永登县| 宜兰市| 高要市| 尤溪县| 舒城县| 报价| 汉阴县| 政和县| 宜君县| 瑞丽市| 明光市| 昆明市| 连云港市| 东辽县| 镇沅| 盐山县| 安徽省| 伊川县| 淳安县| 神池县| 沙田区| 麦盖提县| 文山县|