python程序簡單操作

2021-07-04 06:38:07 字數 1856 閱讀 8154

1.用程序實現類似定時器的功能
import multiprocessing

import time

def clock(interval):

while true:

print "the time is ".format(time.ctime())

time.sleep(interval)

if __name__ == "__main__":

p = multiprocessing.process(target=clock,args=(3,))

p.start()

p.join()

2.程序的基本程式設計

run:如果在建立process物件的時候不指定target,那麼就會預設執行process的run方法:

#encoding:utf-8

from multiprocessing import process

import os, time, random

def r():

print 『run method『

if __name__ == "__main__":

print "main process run..."

#沒有指定process的targt

p1 = process()

p2 = process()

#如果在建立process時不指定target,那麼執行時沒有任何效果。因為預設的run方法是判斷如果不指定target,那就什麼都不做

#所以這裡手動改變了run方法

p1.run = r

p2.run = r

p1.start()

p2.start()

p1.join()

p2.join()

print "main process runned all lines..."

最上面演示的**中,在呼叫process的start方法後,呼叫了兩次join方法。這個join方法是幹什麼的呢?

官方文件的意思是:阻塞當前程序,直到呼叫join方法的那個程序執行完,再繼續執行當前程序。

比如還是剛才的**,只是把兩個join注釋掉了:

#encoding:utf-8

from multiprocessing import process

import os, time, random

def r1(process_name):

for i in range(5):

print process_name, os.getpid() #列印出當前程序的id

time.sleep(random.random())

def r2(process_name):

for i in range(5):

print process_name, os.getpid() #列印出當前程序的id

time.sleep(random.random())

if __name__ == "__main__":

print "main process run..."

p1 = process(target=r1, args=(『process_name1『, ))

p2 = process(target=r2, args=(『process_name2『, ))

p1.start()

p2.start()

#p1.join()

#p2.join()

print "main process runned all lines..."

python 簡單的程序池

當需要建立的子程序數量不多時,可以直接利用multiprocessing中的process動態成生多個程序,但如果是上百甚至上千個目標,手動的去建立程序的工作量巨大,此時就可以用到multiprocessing模組提供的pool方法。import multiprocessing import os ...

python程序池簡單講解

多程序是是實現多工的一種方法,程序池是實現多程序的一種方法,它可以定義一次可以執行多少個程序。對於知道需要同時執行多少個任務,而且同時執行任務較少 比如 同時執行5個任務 可以直接建立相應數量的程序。但對於所需要程序數量不確定,而且同時執行任務很多的情況下 比如 同時執行1000個任務 你不可能同時...

python 程序鎖和程序池簡單使用

程序鎖 from multiprocessing import process,lock 程序鎖def f l,i l.acquire print hello world i l.release if name main lock lock for num in range 10 process t...