分清原理:多線程和多任務有何不同?


分清原理:多線程和多任務有何不同?

  多任務多任務的概念人們已經比較熟悉了,它是指用戶可以在同一時間內運行多個應用程序,每個應用程序被稱作一個任務。Windows就是一個支持多任務的操作系統,比起DOS的單任務系統,確實方便了許多。

  Windows多任務處理采用的是被稱為虛擬機(Virtual Machine)的技術。所謂虛擬機實際上指的是由Windows在內存中創建的邏輯微機,由它來運行應用程序。當Windows接受到由鼠標器、鍵盤、定時器信號或某些I/O操作產生的"事件"后,為該任務分配CPU時間。每個任務 (應用程序)使用由Windows分配的短暫的時間片(Timeslice)輪流使用CPU,由於CPU對每個時間片的處理速度非常快,在用戶看來好像這些任務在同時執行。

VISTA
人亦能如此多線操作更何況是CPU呢……

  每個正在系統上運行的程序都是一個進程。每個進程包含一到多個線程。進程也可能是整個程序或者是部分程序的動態執行。線程是一組指令的集合,或者是程序的特殊段,它可以在程序里獨立執行。也可以把它理解為代碼運行的上下文。所以線程基本上是輕量級的進程,它負責在單個程序里。

  執行多任務。通常由操作系統負責多個線程的調度和執行。那么什么是多線程呢?多線程是為了使得多個線程並行的工作以完成多項任務,以提高系統的效率。線程是在同一時間需要完成多項任務的時候被實現的。

  使用線程可以把占據長時間的程序中的任務放到后台去處理。用戶界面可以更加吸引人,這樣比如用戶點擊了一個按鈕去觸發某些事件的處理,可以彈出一個進度條來顯示處理的進度。程序的運行速度可能加快,在一些等待的任務實現上如用戶輸入、文件讀寫和網絡收發數據等,線程就比較游泳了。在這種情況下我們可以釋放一些珍貴的資源如內存占用等等。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM