国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

多線程

2019-11-08 02:55:47
字體:
來源:轉載
供稿:網友

了解多線程之前 首先說一下 程序 進程 和 線程的區別啊

程序我們都知道,它是一連串的動也不動的指令集,不來也不去,靜靜的做個美男子讓機器去解析.

而進程呢, 我們的機器 我們的操作系統要運行,需要調度上面的程序,既然有調度的這個動作,那聽上去他就是一個動態的概念.

而線程 就是在進程內的多條執行路徑,也就是說在一個進程內 可能有多個程序需要調度,那就有多條線程,

就好比我們要去灌溉一片農田, 我們首先要有一個進程開啟,要行動起來,而期間呢,有需要鋪設水袋的人,有需要配備農機的人,有需要觀看農田的人,這些可能協同在這一個進程中.

總結就是在進程內開辟多條線程.   比如 在一個類里面 有 a ,b,c三個方法,a 執行的同時,b和c 也可以進行.而不是 a執行完 b才能執行.

進程是程序的一次動態執行過程,他占用一定的地址空間.

每個進程都是獨立的,有三部分組成:cpu/data/code

缺點:內存浪費,cpu的負擔

so 開辟線程,其實就是一個輕量級的進程,因為它也是開辟了一條單一的路徑的.

所以一個進程可以擁有多個并行的線程.

一個進程中的線程共享相同的內存單元,內存地址空間->可以訪問相同的變量和對象,而且他們從同一堆中分配對象->通信 數據交換 同步操作

但這有可能對統一資源進行征用,會出現并發性問題.

進程和線程的區別:  官方說法

根本區別:進程是作為資源分配的單位, 線程是調度和執行的單位.

從開銷上來說:每個進程都有獨立的代碼和數據空間(進程上下文),進程間的切換會有較大開銷.   線程可看成是輕量級的進程,同一類線程共享代碼和數據空間. 每個線程都有獨立的運行棧 和 程序計數器(pc),線程切換的開銷小.

所處環境:在操作系統中能同時運行多個任務(程序)    線程 ->在同意應用程序中有多個的有順序的執行代碼.

分配內存:系統在運行的時候 為不同的進程分配不同的內存空間.     除了cpu以外   不會為線程在分配內存,因為本身線程就是在進程內,他們只是共享這些內存資源

包含關系:沒有線程的進程是可以被看作單線程的,如果一個進程內有多個線程,那么執行過程不是一條線的,是多條線共同完成的.

                   線程是進程的一部分,所以線程有的時候被稱為是輕量級的進程.


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 南宫市| 临邑县| 康保县| 九江市| 抚州市| 铜陵市| 改则县| 邵武市| 古浪县| 松原市| 长乐市| 松溪县| 东莞市| 长沙县| 雅江县| 镇坪县| 扎赉特旗| 甘孜县| 和林格尔县| 公主岭市| 东乌珠穆沁旗| 黎川县| 威信县| 建湖县| 桂阳县| 白河县| 铅山县| 阳泉市| 沁阳市| 肥东县| 江都市| 山阳县| 株洲县| 五台县| 临漳县| 济宁市| 盈江县| 同德县| 济南市| 基隆市| 枝江市|