import threading import time class x(threading.Thread): def __init__(self,i): self.a=i super(x,self).__init__() self.start() def run(self): if self.a==2: time.sleep(1) print self.a for i in range(4): x(i) #每個x(i)已是一個線程了,他們的run方法會被同時調用
輸出結果python
root@VM-131-71-ubuntu:~/python# python a.py 0 1 3 4 5 6 7 8 9 2 #若是x(i)的run方法仍是順序執行,沒有併發,那麼2不該該在這裏打印出來
from multiprocessing import Process import time def b(i): if i==2: time.sleep(3) print i for i in range(10): Process(target=b,args=(i,)).start()
3 4 5 1 6 7 8 9 0 2 #能夠看出也是併發的,而且和上面的不同,每一次的結果都是不必定的.
threding每一次的結果都必定,multiprocessing的結果沒有規律.ubuntu