[L2H] – Multi Processing in Python

Threading in python မွာတုန္းက Multi processing ကို သံုးရင္ ပိုျမန္မယ္လို႕ ထင္တာေၾကာင့္ multi processing ကို အခုအခါေလ့လာၾကာတာေပါ့။

Documentation

https://docs.python.org/2/library/multiprocessing.html
https://docs.python.org/3.4/library/multiprocessing.html?highlight=process

Example from documentation

from multiprocessing import Process
import os

def info(title):
    print title
    print 'module name:', __name__
    if hasattr(os, 'getppid'):  # only available on Unix
        print 'parent process:', os.getppid()
    print 'process id:', os.getpid()

def f(name):
    info('function f')
    print 'hello', name

if __name__ == '__main__':
    info('main line')
    p = Process(target=f, args=('bob',))
    p.start()
    p.join()

f ဆိုတဲ့ function က process တစ္ခုအေနနဲ႕ run သြားတဲ့ ဥပမာကိုျပထားတာျဖစ္ပါတယ္။က်ေနာ္တို႕ run ၾကည့္လိုက္ရင္ ျမင္နိုင္ပါတယ္။

main အတြက္ process id ဆိုတာက ဒီ program ရဲ႕ process id ဆိုရင္ function f အတြက္ process က တစ္ခုသက္သက္ေပါ့

ဒီလုိဆိုရင္ threading တုန္းကလိုပဲ bruteforce ပံုစံေလးနဲ႕စမ္းၾကည့္မယ္

from multiprocessing import Process

def mylist():
	for i in range(0,100):
		print("%d")%i

myprocess=2

def multiprocessed():

    processes = []

    for i in xrange(0, myprocess):

        p = Process(target=mylist)

        processes.append(p)

    # Start the processes

    for p in processes:

        p.start()

    # Ensure all processes have finished execution

    for p in processes:

        p.join()

if __name__ == "__main__":

    multiprocessed()

Ok စမ္းၾကည့္မယ္

သံုးလို႕ရတာပါပဲ ဒီလိုဆို ဘယ္သူပိုျမန္လဲဆိုတာေလးၾကည့္လိုက္မယ္။

က်ေနာ္႕ဆီမွာေတာ့ Windows 10 ေၾကာင့္ထင္တယ္ Threading က ပိုျမန္ေနတာကိုေတြ႕ရမွာျဖစ္ပါတယ္။

Linux မွာဆိုရင္ေတာ့ Process က ပိုျမန္မလားဆိုတာ

time python mp.py

ဆိုျပီး စမ္းၾကည့္နိုင္ပါတယ္

Thanks

Be the first to comment

Leave a Reply

Your email address will not be published.


*