<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    so true

    心懷未來,開創未來!
    隨筆 - 160, 文章 - 0, 評論 - 40, 引用 - 0
    數據加載中……

    程序、進程、線程學習筆記

    程序是計算機指令的集合,它以文件的形式存儲在計算機磁盤上;而進程是一個正在運行的程序的一個實例,是程序在其自身的地址空間中的一次執行活動。
    程序不占用系統的運行資源,程才可以申請資源、被系統調度、獨立運行。
    一個程序可以對應多個進程,一個進程中也可以同時訪問多個程序。
    進程由內核對象和地址空間兩部分組成。內核象是操作系統分配出的有特定數據結構的一內存塊,用于維護進程的各種信息,進程不能直接訪問該內存塊,只能通過系統給提供的一些函數來獲取一些信息。地址空間包含了所有可執行模塊或DLL模塊的代碼和數據,還包括動態內存分配的空間,比如運行中線程需要分配的堆棧和堆空間。
    進程是線程的容器,是線程的運行環境,真正完成執行地址空間中代碼的是線程。
    一個進程可以有多個線程,這些線程都執行該進程內的同一地址空間中的代碼。
    一個進程至少得有一個線程來執行其地址空間中的代碼。創建進程時,操作系統就會自動創建該進程的第一個線程,也就是主線程,然后再由主線程來調用其它線程,我們常說的main或WinMain函數就是主線程的入口函數。
    對于32位的進程來說,地址空間最大為4GB,這由進程指針的尋址能力所限,而且對于每個進程而言,該地址空間都是它私有的,其他的進程是不能訪問的,而且我們所說的地址空間是虛擬的地址空間,怎么理解虛擬二字呢?就是說將物理內存和頁面文件中的某部分拿出來映射為我們這里的地址空間,它只是內存地址的一個范圍。
    線程也是由對應于它的內核對象以及線程堆棧組成,這里的內核對象也是一個有特定數據結構的內存塊,由于系統管理線程的統計信息。
    由一個進程創建的多個線程之間的地位都是平等的,它們都可以隨意的訪問進程內核對象中的所有句柄等等屬于該進程的信息,而且各個線程之間是可以互相隨意的訪問彼此的線程堆棧的,因此線程間通信就很容易了,而且線程只有一個內核對象和堆棧,因此占用的內存少,所以提倡多線程編程,而不是創建多個進程。
    對于一個CPU,在某時刻只能有一個線程在運行,多個線程的運行是通過時間片輪轉來實現的,并不是真正意義上的同時運行。

    posted on 2008-02-23 19:29 so true 閱讀(338) 評論(0)  編輯  收藏 所屬分類: C&C++

    主站蜘蛛池模板: 麻豆va在线精品免费播放| 亚洲AV噜噜一区二区三区| 国产91精品一区二区麻豆亚洲| 中文字幕无码亚洲欧洲日韩| 男女做羞羞的事视频免费观看无遮挡| 亚洲伊人久久大香线蕉苏妲己| 97精品免费视频| 亚洲精品综合久久中文字幕| 亚洲免费二区三区| 亚洲人成在线中文字幕| 无码一区二区三区免费视频| 亚洲熟妇丰满xxxxx| 国产成人免费福利网站| 亚洲嫩草影院久久精品| 美女内射无套日韩免费播放| 亚洲国产精品成人AV无码久久综合影院 | 免费一级毛片在线播放视频免费观看永久| 好吊妞在线成人免费| 亚洲国产综合专区在线电影| 免费无码中文字幕A级毛片| 亚洲国产精品午夜电影| 久久99精品国产免费观看| 久久亚洲AV无码精品色午夜| 啦啦啦中文在线观看电视剧免费版| 亚洲爆乳无码精品AAA片蜜桃| 亚洲人AV永久一区二区三区久久 | 亚洲va乱码一区二区三区| 免费观看美女裸体网站| 无遮挡国产高潮视频免费观看| 成人性生交大片免费看无遮挡| 亚洲AV无码一区二区乱子仑| 久久影视综合亚洲| 无码av免费一区二区三区试看| 亚洲日本香蕉视频| 好男人视频在线观看免费看片| 亚洲国产精品成人AV在线| 亚洲精品A在线观看| 久久久久久夜精品精品免费啦| 亚洲综合无码无在线观看| 亚洲成aⅴ人片久青草影院| 日韩人妻无码精品久久免费一|