Python學習 多執行緒和多程序

2021-09-11 07:50:04 字數 1580 閱讀 4543

執行緒與程序之間的關係與區別:

關係:1,乙個執行緒只能屬於乙個程序,乙個程序可以有多個執行緒,但至少有乙個執行緒。

2,同一程序的執行緒共享該程序的所有資源。

3,處理機上真正執行的是執行緒

4,執行緒執行需要協作同步。不同執行緒可通過訊息同步實現執行緒通訊。

區別:1,排程:執行緒是排程和分配的基本單位,程序是擁有資源的基本單位

2,併發:程序可以併發執行,同一程序間的多個執行緒也可以併發執行。

3,系統開銷:系統中主要進行資源**的地方是堆,堆是執行緒共有的,也就是程序所有的資源,所有建立執行緒的開銷比建立程序的小很多。

一.測試例子

def a():

for x in range(3):

print("a=x", x)

def b():

for x in "abc":

print("b=x", x)

a()b()

效果:

二.多執行緒執行

#import執行緒模組

import threading

import time

def a():

for x in range(3):

#為了做出效果,這裡使用time模組的sleep方法,在生產環境千萬不能使用

time.sleep(0.0001)

print("a=x", x)

def b():

for x in "abdc":

print("b=x", x)

a()b()

threading.thread(target=a).start()

threading.thread(target=b).start()

效果:

三.多程序

import time

import multiprocessing

def a():

for x in range(3):

#為了做出效果,這裡使用time模組的sleep方法,在生產環境千萬不能使用

time.sleep(0.0001)

print("a=x", x)

def b():

for x in "abdc":

time.sleep(0.0001)

print("b=x", x)

if __name__ == "__main__":

multiprocessing.process(target=a).start()

multiprocessing.process(target=b).start()

效果:

python 多執行緒 和 多程序

單執行緒例子 usr bin python coding utf 8 name danxiancheng.py import time import threading def loop num,sec print loop s start num,time.strftime y m d h m s...

python多執行緒和多程序

pool 感謝多執行緒和多程序最大的不同在於,多程序中,同乙個變數,各自有乙份拷貝存在於每個程序中,互不影響 而多執行緒中,所有變數都由所有執行緒共享,所以,任何乙個變數都可以被任何乙個執行緒修改,因此,執行緒之間共享資料最大的危險在於多個執行緒同時改乙個變數,把內容給改亂了。python中,多執行...

多程序和多執行緒python

coding utf8 import threading import time class mop floor threading.thread def init self super mop floor,self init def run self print 我要拖地了 time.sleep ...