- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Thread 多執行緒 李紹群learry@mdu.edu.tw 單執行緒與多執行緒 執行緒 CPU使用時間的一個基本單位 使用執行緒的利益 Responsiveness, 應答 增加對使用者的回應 Resource Sharing, 資源分享 共用程式碼及資料 Economy, 經濟 減少context switch的時間 Utilization of MP Architectures, 多處理器架構 多處理器可以併行更多的執行緒 執行緒類型 User threads 由使用者程式庫提供(user-level thread library) POSIX Pthreads Win32 threads Java threads Kernel threads 由kernel提供 Windows XP/2000/2003/Vista Solaris Linux Tru64 UNIX Mac OS X 多執行緒模式(Multithreading Models) 多對一模式, Many-to-One 一對一模式, One-to-One 多對多模式, Many-to-Many 多對一模式(Many-to-One) 多個使用者的執行緒對應到一個核心執行緒 同一時間只有一個執行緒可以存取核心執行緒 不能再多個CPU上並行相同執行緒 Solaris 一對一模式, One-to-One 每一個使用者執行緒對應到一個核心執行緒 允許多個執行緒在多處理器上並行的執行 產生使用者執行緒時就要產生對應的核心執行緒 造成應用程式性能上的負擔 Linux, Windows 多對多模式, Many-to-Many 多個使用者執行緒對應到較少或相等數目的核心執行緒 程式設計者可不受限制的發展執行緒 二層模式(Two-level Model) 使用者執行緒可與核心執行緒綁定 執行緒程式庫(Thread Library) POSIX Pthreads Pthreads依據POS以 (IEEE1003.1c)標準定義執行緒產生和同步的API Pthreads是執行緒行為的規格 作業系統設計者可以用任何他們期望的方式製作此規格 Win32 threads 使用Win32執行緒程式庫產生執行的技巧與Pthreads技巧相當類似 使用Win32API時,必須含有windows.h的標題檔 Java threads 執行緒是在Java程式、Java語言和JavaAPI中程式執行的基本模式 所有Java程式至少包含一個單一執行緒控制(main) 執行緒事項(Threading Issues) fork() and exec() 系統呼叫 複製單一或者全部的執行緒 取消(thread cancellation) 在執行緒完成之前結束 非同步取消(asynchronous cancellation) 立即結束執行緒 延遲取消(deferred cancellation) 執行緒週期性的檢查是否被取消 執行緒事項(Threading Issues) 信號處理(Signal Handling) 信號由於特定事件的發生而產生 產生的信號被送到一個行程 一旦送達後,此信號必須處理 處理方式 傳送信號到此信號作用的執行緒 傳送信號到行程中的每一個執行緒 傳送信號到行程中特定的執行緒 指定一個特定的執行緒來接收該行程的所有信號 執行緒事項(Threading Issues) 執行緒池(Thread Pools) 產生多個執行緒並等待執行 優點 通常對於服務一項要求時,使用現存的執行緒比等待產生一個執行緒快 使用者執行緒同時執行的數目由執行緒池的大小決定 執行緒的特定資料(thread specific data) 每一個執行緒可依需要擁有某些資料 執行緒事項(Threading Issues) 輕量級行程(Light Weight Process, LWP) 介於使用者執行緒與核心執行緒間的資料結構 LWP提供一個虛擬處理器讓應用程式執行緒排班執行 排班程式活化作用(Scheduler Activations) 在使用者執行緒程式庫與核心之間通信的技巧 向上呼叫(upcalls) 核心(kernel)與執行緒庫(thread library)的通訊方式 Windows XP 執行緒 使用一對一模式(one-to-one) 每個執行緒包含 執行緒ID 暫存器 使用者模式與核心模式的堆疊 私有資料儲存區 暫存器, 堆疊與資料儲存區是為執行緒的內容(context) 執行緒的主要資料結構 ETHREAD(管理執行緒區塊, executive thread block) KTHEREAD(核心執行緒區塊, kernel thread block) TEB(執行緒環境區塊, thread env
文档评论(0)