91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python 進程Process與線程threading區別

發布時間:2020-07-31 03:38:51 來源:網絡 閱讀:253 作者:qq5d6f345f0205e 欄目:編程語言

一.線程threading創建

對于python線程相關的函數本文不再做詳細講解,如果想學習線程threading內容請參考:python 線程創建和參數傳遞???

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

# !usr/bin/env python

# -*- coding:utf-8 _*-

"""

@Author:何以解憂

@Blog(個人博客地址): shuopython.com

@WeChat Official Account(微信公眾號):猿說python

@Github:www.github.com

?

@File:python_threading.py

@Time:2019/12/21 21:25

?

@Motto:不積跬步無以至千里,不積小流無以成江海,程序人生的精彩需要堅持不懈地積累!

"""

?

import threading

?

?

def study_info(*args,**kwargs):

????print(args,kwargs)

?

def main():

?

????# 信息列表

????list_info = [{"name":"python 基礎","progress":"10%"},

???????????????? {"name": "python 面向對象", "progress": "20%"},

???????????????? {"name": "python 爬蟲", "progress": "30%"},

???????????????? {"name": "python pyqt5", "progress": "40%"},

???????????????? {"name": "python 數據結構", "progress": "50%"},]

?

????# 創建線程

????for i in range(5):

????????p = threading.Thread(target=study_info,args=(i,),kwargs=list_info[i])

????????# 啟動線程

????????p.start()

?

?

if __name__ == "__main__":

????main()

輸出結果:

1

2

3

4

5

(0,) {'name': 'python 基礎', 'progress': '10%'}

(1,) {'name': 'python 面向對象', 'progress': '20%'}

(2,) {'name': 'python 爬蟲', 'progress': '30%'}

(3,) {'name': 'python pyqt5', 'progress': '40%'}

(4,) {'name': 'python 數據結構', 'progress': '50%'}

?

?

二.進程Process創建

對于python進程相關的函數本文不再做詳細講解,如果想學習進程Process內容請參考:python 進程Process

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

from multiprocessing import Process

?

?

def study_info(*args,**kwargs):

????print(args,kwargs)

?

def main():

?

????# 信息列表

????list_info = [{"name":"python 基礎","progress":"10%"},

???????????????? {"name": "python 面向對象", "progress": "20%"},

???????????????? {"name": "python 爬蟲", "progress": "30%"},

???????????????? {"name": "python pyqt5", "progress": "40%"},

???????????????? {"name": "python 數據結構", "progress": "50%"},]

?

????# 創建進程

????for i in range(5):

????????p = Process(target=study_info,args=(i,),kwargs=list_info[i])

????????# 啟動進程

????????p.start()

?

if __name__ == "__main__":

????main()

輸出結果:

1

2

3

4

5

(0,) {'name': 'python 基礎', 'progress': '10%'}

(1,) {'name': 'python 面向對象', 'progress': '20%'}

(2,) {'name': 'python 爬蟲', 'progress': '30%'}

(3,) {'name': 'python pyqt5', 'progress': '40%'}

(4,) {'name': 'python 數據結構', 'progress': '50%'}

?

?

三.進程Process和線程threading區別

1.一個線程只能屬于一個進程,而一個進程可以有多個線程,但至少有一個線程(線程是計算機的最小單位);

2.資源分配給進程,同一進程的所有線程共享該進程的所有資源,進程與進程之間資源相互獨立,互不影響(類似深拷貝);

3.多進程模式最大的優點就是穩定性高,因為一個子進程崩潰了,不會影響主進程和其他子進程,多進程模式的缺點是在Windows下創建進程開銷巨大。另外,操作系統能同時運行的進程數也是有限的,在內存和CPU的限制下,如果有幾千個進程同時運行,操作系統連調度都會成問題(進程的創建比線程的創建更加占用計算機資源);

4.多線程模式致命的缺點就是任何一個線程掛掉都可能直接造成整個進程崩潰,因為所有線程共享進程的內存;

5.由于GIL鎖的緣故,python 中線程實際上是并發運行(即便有多個cpu,線程會在其中一個cpu來回切換,只占用一個cpu資源),而進程才是真正的并行(同時執行多個任務,占用多個cpu資源),下面關于并行和并發做一個簡單的了解;

?

四.關于線程并發和進程并行的簡單介紹

并行是指兩個或者多個事件在同一時刻發生,python中的進程屬于并行能充分利用計算機資源效率最高同時執行多個任務,占用多個cpu資源;python 進程Process與線程threading區別

并發是指兩個或多個事件在同一時間間隔發生,python中的線程屬于并發不管計算機有多少個CPU,不管你開了多少個線程,同一時間多個任務會在其中一個CPU來回切換,只占用一個CPU,效率并不高;

python 進程Process與線程threading區別

關于并行和并發我們留到后面GIL鎖在詳細講解;

?

?

猜你喜歡:

1.python 進程Process

2.python 線程threading

3.python列表推導式

4.python字典推導式

?

轉載請注明:猿說Python???python 線程threading與進程Process區別


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

宜春市| 资溪县| 佛学| 阳泉市| 化德县| 临汾市| 晋城| 三原县| 开平市| 肃宁县| 海丰县| 青州市| 西城区| 安福县| 雷波县| 和龙市| 天峻县| 沁水县| 平度市| 白玉县| 社会| 山西省| 巩义市| 横峰县| 黄梅县| 珠海市| 金堂县| 张家界市| 清镇市| 奉节县| 临桂县| 福州市| 土默特右旗| 塔城市| 宁乡县| 漳平市| 无极县| 资讯| 彭泽县| 保山市| 尚志市|