Python第四周之多線程和多進程

來源:互聯網
上載者:User

標籤:cpu   import   roc   tar   thread   操作   需要   多進程   資料共用   

# 多線程和多進程

  進程:作業系統分配記憶體的基本單位,進程之間的通訊相互隔離,如果要相互交換資料,需要特殊的機制。

  線程:一個進程由至少一個線程組成,線程是進程的執行單元,也是作業系統分配CPU的基本單元。

多線程,是為了多的被CPU所啟動。

  優點:

  1.縮短程式的執行時間,提升效能

  2.改善使用者的體驗。

 

進程

調用方法一: 直接調用 。

  直接建立對象Process,並通過target參數指定線程啟動後要執行的任務


from multiprocessing import Process


count = 0


def running(string):
global count
inner = 0
while count < 100:
print(string, end=‘‘, flush=True)
count += 1
inner += 1
print(‘%s列印了%s次‘ % (string, inner))


def main():
t1 = Process(target=running, args=(‘??‘,))
t1.start()
t2 = Process(target=running, args=(‘哼‘,))
t2.start()


if __name__ == ‘__main__‘:
main()
 

調用方法二: 定義類來調用 -- 間接(推薦)

  繼承Process自訂線程,通過重寫run 方法來指定線程啟動後執行的任務

from multiprocessing import Processclass Patten(Process):    def __init__(self, string, count):        self._string = string        self._count = count        super(Patten, self).__init__()    @property    def count(self):        return self._count    def run(self):        for _ in range(self._count):            print(self._string, end=‘‘, flush=True)def main():    patten = Patten(‘??‘, 10000)    patten2 = Patten(‘??‘, 10000)    patten3 = Patten(‘??‘, 10000)    patten4 = Patten(‘ヾ(?ω?`)o‘, 10000)    patten5 = Patten(‘??‘, 10000)    total = patten.count + patten2.count + patten3.count + patten4.count + patten5.count    print(total)if __name__ == ‘__main__‘:    main()
線程

使用方法同進程,只需要把對象換位Thread 就行。和進程的區別如下:

  進程是單獨執行,資料不共用,線程是資料共用執行。

 

Python第四周之多線程和多進程

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.