国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

python 多線程和多進程

APICloud / 2646人閱讀

摘要:總的來說是對補救多線程在多核操作系統中的一副良藥。更多的推薦大家使用模塊。假定這是你的銀行存款先存后取,結果應該為運行的結果是預想的另外再服務器中會大量使用多進程的方式,,等

官方文檔:multiprocessing is a package that supports spawning processes using an API similar to the threading module. The multiprocessing package offers both local and remote concurrency, effectively side-stepping the Global Interpreter Lock by using subprocesses instead of threads。

總的來說是對補救Python多線程在多核操作系統中的一副良藥。更多的推薦大家使用multiprocessing 模塊。

一些簡單使用技巧見介紹

http://blog.csdn.net/dutsoft/...

廖雪峰python教程之多進程
其中最大的區別在于 多線程和多進程最大的不同在于,多進程中,同一個變量,各自有一份拷貝存在于每個進程中,互不影響,而多線程中,所有變量都由所有線程共享

運行環境 Python2.7 ,windows

import time, threading

# 假定這是你的銀行存款:
balance = 0

def change_it(n):
    # 先存后取,結果應該為0:
    global balance
    balance = balance + n
    balance = balance - n

def run_thread(n):
    for i in range(100000):
        change_it(n)

t1 = threading.Thread(target=run_thread, args=(5,))
t2 = threading.Thread(target=run_thread, args=(8,))
t1.start()
t2.start()
t1.join()
t2.join()
print(balance)

運行的結果會是一個隨機數,就是因為Python的多線程是不安全的,線程之間的調度會影響到其他線程的結果。

#coding=utf-8
import time, threading
lock = threading.Lock()
# 假定這是你的銀行存款:
balance = 0

def change_it(n):
    # 先存后取,結果應該為0:
    global balance
    balance = balance + n
    balance = balance - n

def run_thread(n):
    for i in range(100000):
        lock.acquire()
        try:
            change_it(n)
        finally:
            lock.release()

t1 = threading.Thread(target=run_thread, args=(5,))
t2 = threading.Thread(target=run_thread, args=(8,))
t1.start()
t2.start()
t1.join()
t2.join()
print(balance)

運行的結果是預想的0

另外再web服務器中會大量使用多進程的方式,gunicorn,uwsgi等

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/41247.html

相關文章

  • Python中單線程線程進程的效率對比實驗

    摘要:中單線程多線程與多進程的效率對比實驗多線程多進程中多線程和多進程的對比是運行在解釋器中的語言,查找資料知道,中有一個全局鎖,在使用多進程的情況下,不能發揮多核的優勢。 title: Python中單線程、多線程與多進程的效率對比實驗date: 2016-09-30 07:05:47tags: [多線程,多進程,Python]categories: [Python] meta: Pyt...

    niceforbear 評論0 收藏0
  • python大佬養成計劃----進程線程進程

    摘要:在一個進程內部,要同時干多件事,就需要同時運行多個子任務,我們把進程內的這些子任務稱為線程。總結一下,多任務的實現方式有三種多進程模式多線程模式多進程多線程模式線程是最小的執行單元,而進程由至少一個線程組成。 進程與線程 很多同學都聽說過,現代操作系統比如Mac OS X,UNIX,Linux,Windows等,都是支持多任務的操作系統。 什么叫多任務呢?簡單地說,就是操作系統可以同時...

    taowen 評論0 收藏0
  • Python基礎之使用期物處理并發

    摘要:本文重點掌握異步編程的相關概念了解期物的概念意義和使用方法了解中的阻塞型函數釋放的特點。一異步編程相關概念阻塞程序未得到所需計算資源時被掛起的狀態。 導語:本文章記錄了本人在學習Python基礎之控制流程篇的重點知識及個人心得,打算入門Python的朋友們可以來一起學習并交流。 本文重點: 1、掌握異步編程的相關概念;2、了解期物future的概念、意義和使用方法;3、了解Python...

    asoren 評論0 收藏0
  • python基礎教程:異步IO 之 概念和歷史

    摘要:并發的方式有多種,多線程,多進程,異步等。多線程和多進程之間的場景切換和通訊代價很高,不適合密集型的場景關于多線程和多進程的特點已經超出本文討論的范疇,有興趣的同學可以自行搜索深入理解。 編程中,我們經常會遇到并發這個概念,目的是讓軟件能充分利用硬件資源,提高性能。并發的方式有多種,多線程,多進程,異步IO等。多線程和多進程更多應用于CPU密集型的場景,比如科學計算的時間都耗費在CPU...

    BicycleWarrior 評論0 收藏0
  • Python

    摘要:最近看前端都展開了幾場而我大知乎最熱語言還沒有相關。有關書籍的介紹,大部分截取自是官方介紹。但從開始,標準庫為我們提供了模塊,它提供了和兩個類,實現了對和的進一步抽象,對編寫線程池進程池提供了直接的支持。 《流暢的python》閱讀筆記 《流暢的python》是一本適合python進階的書, 里面介紹的基本都是高級的python用法. 對于初學python的人來說, 基礎大概也就夠用了...

    dailybird 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<