999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

計算機中的多線程問題

2013-08-15 00:52:53
科技傳播 2013年22期
關鍵詞:進程計算機用戶

張 蕊

天津師范大學計算機與信息工程學院,天津 300387

1 多線程的相關概述

1.1 進程與線程的區別

對并行計算的研究是當代高效計算機系統設計中至關重要的一部分,并行的效果往往依賴于支持并行性的系統所提供的并發機制。進程是計算機資源分配的單位。一個大任務一般可以分成多個子任務, 這些子任務的執行組成了整個任務功能。線程和進程的區別主要存在于創建線程的階段, 線程相較于進程并不是復制父進程映象, 而是和父進程一起實現共享。多個線程一起共享各種資源和同一地址空間, 不同的只有代碼段和私有棧。因此創建線程和調度線程的費用與原來的方式相比明顯降低了。

1.2 線程

所謂線程(thread),簡單地說就是指進程中的單一順序控制流(a thread is a single stream of execution with in a process)。線程是程序的一個調度單位,同時也是計算機科學領域的術語之一。線程的另一個別稱是輕量級進程(lightweight processes)。線程往往有自己的寄存器集、局部線程變量、棧、線程說明數據、程序計數器、狀態信息以及線程說明信號掩碼。一個進程里的多個線程之間往往要共享同樣的的地址空間并共同構成一個大的進程,線程執行的基礎是要先有進程的執行,也就是說線程其實是無法獨立執行的。

1.3 多線程

多線程是從硬件或軟件上實現多個線程并發執行的一種技術。有多線程能力的計算機往往具有強大的硬件支持,因而能夠同時運行多于一個的線程,進而提升了整體處理的效能。引進多線程具有一定的必要性,因為多線程具有諸多優點。多線程可以提高系統的吞吐率和程序的響應效率,同時有助于改善程序的結構,從而使用戶能夠更加有效地利用好系統的資源。此外,多線程在降低資源的占用和加強用戶間通信效果等諸多方面也有積極的作用。例如,我們在word 中打印文件的過程,對文件的編輯并不會影響到對文件的打印,編輯操作和打印操作其實是異步執行的,或者可以理解為打印操作是在后臺完成的。這是因為系統創建了兩個獨立線程來分別完成對文件的編輯和對文件的打印,同時規定負責編輯文檔的線程的優先級要高于負責打印文檔的線程。在我們實際的應用中,多線程的方法非常適合用于解決多個獨立任務組成的問題。

2 線程的分類

2.1 用戶級線程

用戶級線程(user level threads)是由用戶程序來負責管理的,傳統的操作系統內核只負責對進程的管理。

操作系統通常會提供一個能夠在用戶空間里執行的線程庫,以方便用戶程序對于用戶級線程的管理工作。這個能夠在用戶空間里執行的線程庫提供了包括線程的創建、線程的調度、線程的執行、線程的撤銷、線程間通信以及存儲上下文在內的一些功能。有了線程庫提供的這些功能,用戶級線程的實現就不再需要操作系統給予其他的特殊支持了。此外,對于操作系統分配的用戶堆棧和用戶寄存器,用戶級進程只能使用其所屬進程被分配的用戶堆棧和用戶寄存器。

用戶級線程的上下文切換與內核無關,所以可能存在相關進程的狀態是阻塞或等待的,而屬于該進程的線程狀態卻是執行情況。

2.2 核心級線程

核心及線程與用戶級線程的不同之處在于,前者不僅可以在同一個處理機上被并發執行,還可以在不同處理機上被并行執行。所以操作系統內核在負責同一進程內部的不同線程的調度工作的同時,可能也要進行不同進程之間的調度工作。這種工作機制有效地避免線程處于執行狀態、進程處于等待或阻塞狀態的情況發生。而另外,為了達到提高操作系統內核程序執行效率的效果,核心級線程技術也會用于內核程序自身。綜上,和用戶級線程進行比較,核心級線程在上下文切換上所用的時間要大于用戶級線程。

3 JAVA 中的多線程機制

3.1 JAVA 中線程的創建

在JAVA 語言中,可采用兩種方式產生線程。第一種方法是繼承,即通過繼承Thread 類的方法,重寫和覆蓋部分方法run(),然后即可創建和啟用自己定義的線程實例,當然這些線程實例是在應用程序類里創建和啟動的。另一種方法是實現Runnable 接口。這種方法也是目前是非常常用的創建線程的方法之一,它打破了第一種方法(即繼承Thread 類)受到的的限制。在JAVA 的類庫里,Runnable 接口中僅僅包含了一個run()方法。所有對象,只要屬于能夠實現該接口的類,就應該可以用線程的方式執行。當然,只是對類進行聲明是無法對任何對線程提供支持的,因此還需要對Thread 類實例進行創建。

3.2 JAVA 對多線程的同步控制

JAVA 對多線程同步控制的方法主要是圍繞關鍵字synchronized 展開,并配合wait、sleep、notify 等方法,來實現類似操作系統中PV 原語的信號量機制。因此將JAVA 對多線程的同步控制步驟歸納如下:

1) 對需要同步保護的幾個方法或代碼段增加synchronized 限制符,這就是加鎖的過程;

2)對增加了synchronized 限制符的方法或代碼中配合使用wait、sleep 等阻塞方法,來實現需要的功能;

3)在增加了synchronized 限制符的代碼或方法最后用notif 或notifyall 等方法喚醒阻塞中的線程,實現線程間的通信。

目前,對計算機中多線程問題的研究主要應用于局域網服務器中的文件管理或通信控制、WWW 服務器的多線程并發研究兩個方面。在局域網服務器的文件管理中,服務器進程會派生出相應的線程來處理用戶訪問文件的要求。為了能夠應對同時接受到多個訪問文件要求的情況,操作系統可以采取派生出多個線程的方法進行處理。當計算機的系統是多處理的情況下,線程還能在不同處理機上被執行。www 服務器分為重復服務器和并發服務器。重復服務器一般面向能在短時間內處理完成的請求, 并且是由服務器來對這些請求進行處理的。并發服務器則面向那些處理完成時間不定長的請求, 由服務器的進程或線程來處理每個請求。

[1]張玉蓉,藍雯飛.Java的多線程技術探討[J].計算機教育,2006(4).

[2]http://uule.iteye.com/blog/1106710.

猜你喜歡
進程計算機用戶
計算機操作系統
基于計算機自然語言處理的機器翻譯技術應用與簡介
科技傳播(2019年22期)2020-01-14 03:06:34
債券市場對外開放的進程與展望
中國外匯(2019年20期)2019-11-25 09:54:58
信息系統審計中計算機審計的應用
消費導刊(2017年20期)2018-01-03 06:26:40
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
如何獲取一億海外用戶
創業家(2015年5期)2015-02-27 07:53:25
Fresnel衍射的計算機模擬演示
社會進程中的新聞學探尋
民主與科學(2014年3期)2014-02-28 11:23:03
主站蜘蛛池模板: 成人在线视频一区| 国产一级妓女av网站| 91小视频在线观看免费版高清| 日韩欧美国产精品| 国产主播一区二区三区| 亚洲成年人网| 亚洲高清免费在线观看| 国产日韩欧美黄色片免费观看| 国产激爽大片高清在线观看| 91成人在线观看| www.亚洲色图.com| 最新亚洲人成网站在线观看| 日韩欧美网址| 亚洲欧美日韩久久精品| 性色一区| 亚洲日韩AV无码精品| 国产菊爆视频在线观看| 四虎永久在线精品影院| 在线欧美国产| 久久久久国产一区二区| 国产精品手机在线观看你懂的| 国产国模一区二区三区四区| 国产丝袜91| 欲色天天综合网| 狂欢视频在线观看不卡| 男人天堂亚洲天堂| 国产亚洲欧美在线专区| 国产成人无码Av在线播放无广告| 欧美在线精品怡红院| 亚洲AV无码精品无码久久蜜桃| 国产第二十一页| AV色爱天堂网| 免费激情网址| 亚洲va在线∨a天堂va欧美va| 22sihu国产精品视频影视资讯| 高清视频一区| 亚洲视屏在线观看| 国产精品久线在线观看| 国产精品无码久久久久AV| 亚洲一区二区成人| 色婷婷电影网| 永久在线精品免费视频观看| 国产91丝袜在线观看| 亚洲国产成熟视频在线多多| 亚洲人成在线免费观看| 免费国产好深啊好涨好硬视频| 在线免费不卡视频| 国产精品片在线观看手机版| 色欲不卡无码一区二区| 欧美天堂在线| 秋霞一区二区三区| 国产精品自在线天天看片| 欧美日韩高清| 中国丰满人妻无码束缚啪啪| 国产高清免费午夜在线视频| 亚洲伦理一区二区| a级毛片免费网站| 性做久久久久久久免费看| 四虎在线高清无码| 人人看人人鲁狠狠高清| 九九久久99精品| 欧美19综合中文字幕| 2021天堂在线亚洲精品专区| 东京热一区二区三区无码视频| 狠狠色丁婷婷综合久久| 男女男精品视频| 欧美成人午夜在线全部免费| 亚洲swag精品自拍一区| 日韩av高清无码一区二区三区| 国产成人综合久久精品下载| 国产成人资源| 18黑白丝水手服自慰喷水网站| 女人av社区男人的天堂| 一本一本大道香蕉久在线播放| 呦视频在线一区二区三区| 激情无码字幕综合| 精品偷拍一区二区| 欧美性猛交xxxx乱大交极品| AV天堂资源福利在线观看| 日本三级精品| 日本免费新一区视频| 99久久99这里只有免费的精品|