C#_The concept of Thread and Process_Multithreading_Skill
遠古時期,在執行緒(thread)這個招式還未被發明的時候,
當時的「作業系統」與「應用程式」這兩個被大家常掛在嘴邊上的、每天在使用的概念
是以跑大隊接力的方式完成每一次工作
換言之,就是要A接給B之後B再接給C這感覺。
把它轉成程式概念去理解就像是
呼叫某個函式時,必須等該函式執行完畢,返回之後,呼叫端才能繼續下去。
一件工作做完才接著做下一件
作業系統(Operating System)在執行一個應用程式時,正在執行的應用程式稱為一個行程(process),系統會分配相對的系統資源與CPU時間。
程式碼會存放在記憶體內,然後由電腦一行一行去執行。
這一行一行執行串聯起來的動作,其實就是所謂一般常見的「單執行緒」執行緒種類。
不過這種設計無法應付一些特殊場合
【網路領域】
像是 網路領域中的 Server 就是最常見的例子
假設一個時間內只能接受一個客戶端程式連線,若同時間內有另一個客戶端想連線,
就會無法與伺服器程式建立連線。
因此,實際上伺服器程式應該具有處理多個客戶端連線功能!!!
我們又稱為 多執行緒伺服器的設計~~
執行緒是系統處理工作的基本單元,通常一個CPU在同一時間只能提供一個執行緒
程序跟執行緒間的關係我們可以把它想像成是工廠與員工的關係,
工廠擁有資源與設備但需要由員工去操作才能生產產品
【影像領域】
多執行緒(multi-threading)就是說系統可以同時間內把多個員工派到同一家工廠去工作,此法稱做多執行緒平行執行,相較於單一執行緒處理方式,它有機會讓工作在比較短的時間內完成
執行緒是一輕量級的行程(light-weighted process),主要在時間共享( time sharing)
設計下的作業系統才有的特色。
執行緒主要用於非同步的(asynchronous) 執行工作,使我們得以在取入影像時能同時執行數位影像處理工作。
目前多數的數位影像監視系統,其程式不 具有同步性,故在多事件偵測或偵測行程 (Process)的權重較重時經常導致其它行程執行延遲。
再者多事件偵測的影像處理是非常耗時,故如何充份發揮 CPU 效能,進而增加程式處理速度並降低處理時間是個新課題。
現今 CPU 發展到雙核心或者更多核心數,以往的影像監控系統是以單核心程式架構利用 CPU 資源,其架構應用在現今的多核心 CPU,是不能充份發揮多核心效能,故更有效利用 CPU 資源可增加程式處理速度並降低處理時間是個新課題。
因此,讓影像式監控系統的偵測事件具有同步性、可延展性及提升 CPU 使用效率也需要受到重視
參考:
https://dotblogs.com.tw/clark/archive/2010/02/23/13739.aspx
Huan-Lin 學習筆記
C# 學習筆記:多執行緒 (1) - 從零開始
http://huan-lin.blogspot.com/2013/04/csharp-notes-multithreading-1.html
余小章 @ 大內殿堂
https://dotblogs.com.tw/yc421206/2011/01/05/20609
多執行緒處理模式應用於影像監控系統效益之研究
國立台北科技大學 機電整合研究所
http://www.inf.cyut.edu.tw/AIT2010/ft_265.pdf
當時的「作業系統」與「應用程式」這兩個被大家常掛在嘴邊上的、每天在使用的概念
是以跑大隊接力的方式完成每一次工作
換言之,就是要A接給B之後B再接給C這感覺。
把它轉成程式概念去理解就像是
呼叫某個函式時,必須等該函式執行完畢,返回之後,呼叫端才能繼續下去。
圖片摘自:link
一件工作做完才接著做下一件
圖片摘自 : Huan-Lin 學習筆記 _ C# 學習筆記:多執行緒 (1) - 從零開始
作業系統(Operating System)在執行一個應用程式時,正在執行的應用程式稱為一個行程(process),系統會分配相對的系統資源與CPU時間。
程式碼會存放在記憶體內,然後由電腦一行一行去執行。
這一行一行執行串聯起來的動作,其實就是所謂一般常見的「單執行緒」執行緒種類。
不過這種設計無法應付一些特殊場合
【網路領域】
像是 網路領域中的 Server 就是最常見的例子
假設一個時間內只能接受一個客戶端程式連線,若同時間內有另一個客戶端想連線,
就會無法與伺服器程式建立連線。
因此,實際上伺服器程式應該具有處理多個客戶端連線功能!!!
我們又稱為 多執行緒伺服器的設計~~
執行緒是系統處理工作的基本單元,通常一個CPU在同一時間只能提供一個執行緒
程序跟執行緒間的關係我們可以把它想像成是工廠與員工的關係,
工廠擁有資源與設備但需要由員工去操作才能生產產品
【影像領域】
多執行緒(multi-threading)就是說系統可以同時間內把多個員工派到同一家工廠去工作,此法稱做多執行緒平行執行,相較於單一執行緒處理方式,它有機會讓工作在比較短的時間內完成
執行緒是一輕量級的行程(light-weighted process),主要在時間共享( time sharing)
設計下的作業系統才有的特色。
執行緒主要用於非同步的(asynchronous) 執行工作,使我們得以在取入影像時能同時執行數位影像處理工作。
目前多數的數位影像監視系統,其程式不 具有同步性,故在多事件偵測或偵測行程 (Process)的權重較重時經常導致其它行程執行延遲。
再者多事件偵測的影像處理是非常耗時,故如何充份發揮 CPU 效能,進而增加程式處理速度並降低處理時間是個新課題。
現今 CPU 發展到雙核心或者更多核心數,以往的影像監控系統是以單核心程式架構利用 CPU 資源,其架構應用在現今的多核心 CPU,是不能充份發揮多核心效能,故更有效利用 CPU 資源可增加程式處理速度並降低處理時間是個新課題。
因此,讓影像式監控系統的偵測事件具有同步性、可延展性及提升 CPU 使用效率也需要受到重視
參考:
昏睡領域
Clark的心得筆記
https://dotblogs.com.tw/clark/archive/2010/02/23/13739.aspx
Huan-Lin 學習筆記
C# 學習筆記:多執行緒 (1) - 從零開始
http://huan-lin.blogspot.com/2013/04/csharp-notes-multithreading-1.html
余小章 @ 大內殿堂
https://dotblogs.com.tw/yc421206/2011/01/05/20609
多執行緒處理模式應用於影像監控系統效益之研究
國立台北科技大學 機電整合研究所
http://www.inf.cyut.edu.tw/AIT2010/ft_265.pdf
留言
張貼留言