Python多程序並行執行2個函式未達到預期效果

2021-10-25 07:37:11 字數 746 閱讀 6673

**如下:

#!/usr/bin/env python3

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

from multiprocessing import process

import os, time

def d1(arg):

for i in range(5):

time.sleep(0.5)

print("d1")

def d2(arg):

for j in range(10):

time.sleep(1.5)

print("d2")

if __name__ == '__main__':

p1 = process(target = d1, args = ("1", ))

p2 = process(target = d2, args = ("2", ))

p1.start()

p2.start()

p1.join() #當前程序阻塞,等待p1程序執行完成

p2.join()

以我對並行的認知就是,兩個函式同時執行,那麼以上輸出結果應該是:

d1,d1,d1,d2,d1,d1,d2,d2,d2,d2,d2,d2,d2,d2,d2

然鵝,結果卻是:d1,d1,d1,d1,d1,d2,d2,d2,d2,d2,d2,d2,d2,d2,d2

這不對啊!這是並行執行嗎?感覺還是順序執行。我用的**不對嗎?

python定時執行,多程序

可以通過另開一條執行緒,去專門做這件事情,py2 如下,如果是py3請自行調整下語法 coding utf8 import threading import time 真正要執行的函式 def t1 print ok 每隔10秒鐘執行 def t2 while 1 t1 time.sleep 10 ...

python 多程序 提高執行效率

python 是一種非常流行的程式語言,但是python 的效率卻並不是非常的理想,這時候就非常有必要使用多程序來提高python 的執行效率。匯入多程序的模組 from multiprocessing import process 多程序模組 from multiprocessing import...

Python使用多程序執行含有任意個引數的函式

1.問題引出 許多時候,我們對程式的速度都是有要求的,速度自然是越快越好。對於python的話,一般都是使用multiprocessing這個庫來實現程式的多程序化,例如 我們有乙個函式my print,它的作用是列印我們的輸入 def my print x print x 但是我們嫌它的速度太慢了...