多工 程序 佇列

2021-10-02 19:23:11 字數 2947 閱讀 3487

程式可以理解為乙個**,它是靜態的,儲存在硬碟中,不占用資源,程式執行起來,就是程序,程序消耗資源,占用記憶體中,程序也可以完成多工。

程序耗費資源較多。

建立程序通過 import multiprocessing

p1=multiprocessing.process(target)

p1.start()

來建立程序

當主程序執行到p1.start()時,會建立子程序,有n個 例項物件.start()就會有n個程序被建立,相當於複製了完整的**。

乙個程式至少乙個程序,乙個程序至少乙個執行緒

執行緒的劃分尺度小於程序(資源比程序少),使得多執行緒程式的併發性高

執行緒必須依附於程序

import multiprocessing

import time

案例:

def test1()

:while true:

print

("-:-------1------"

)print

("sadsadsadsadsa"

)def test2()

:while true:

print

("--------2------"

)print

("sadsadsadsadsa"

)def main()

:

# 建立程序物件

p1 = multiprocessing.

process

(target = test1)

p2 = multiprocessing.

process

(target = test2)

# 開始建立程序

p1.start()

p2.start()

if __name__ ==

"__main__"

:main

()

import multiprocessing

import time

def test1

(q):

data=[11

,22,33

,44,55

,66]for temp in data:

q.put(temp)

def test2

(q):

list1=

while true:

data=q.

get(

) list1.

(data)

if q.

empty()

:break

print

(list1)

def main()

: # 建立佇列

q=multiprocessing.

queue()

# 建立程序物件

p1 = multiprocessing.

process

(target = test1, args=

(q,)

) p2 = multiprocessing.

process

(target = test2, args=

(q,)

) # 開始建立程序

p1.start()

p2.start()

if __name__ ==

"__main__"

:main

()

案例:

檔案的拷貝

import os

import multiprocessing

def copy_file

(dir_name,new_dir,new_file):""

"複製檔案"

""print

(dirname,new_dir,new_fie)

f=open

(dir_name+

"/"+new_file,

"rb"

) info=f.

read()

print

(info)

f.close

write_info

(info,new_dir,new_file)

def write_info

(info,new_dir,old_file)

: f=

open

(newdir+

"/"+new_file,

"w")

f.write

(info)

f.close()

def main()

: # 獲取目錄名

dir_name=

input

("請輸入要拷貝的資料夾名字:"

) # 建立資料夾

new_dir=dir_name+

"[新增]"

try:

os.mkdir

(new_dir)

except:

pass

# 獲取資料夾中的檔案

old_file=os.

listdir

(dir_name)

#print(old_file)

# 建立程序池

po=multiprocessing.

pool(3

)

# 拷貝檔案

for new_file in old_file:

# 採用程序池進行拷貝檔案

po.(copy_file, args=

(dir_name,new_dir,new_file)

) po.

close()

po.join()

if __name__ ==

"__main__"

:main

()

多工 程序

import time import multiprocessing deftest1 while true print 1 time.sleep 1 deftest2 while true print 2 time.sleep 1 defmain t1 threading.thread targe...

python 多工 程序

什麼是程序?程式是靜態的,當程式執行起來就叫做程序。程序是作業系統分配資源的基本單元。程序 執行緒的區別與優缺點 1.定義的不同 程序是系統進行資源分配的最小單位.執行緒是程序的乙個實體,是cpu進行排程的基本單位。執行緒自己基本上不擁有系統資源,只擁有一點在執行中必不可少的資源 如程式計數器,一組...

多工原理,執行緒,程序

一.現代作業系統 windows,mac os x,linux,unix等 都支援 多工 二.單任務現象 from time import sleep defrun while true print sunck is a nice man sleep 1.2 if name main while t...