亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

python 多線程和多進(jìn)程

APICloud / 2691人閱讀

摘要:總的來說是對(duì)補(bǔ)救多線程在多核操作系統(tǒng)中的一副良藥。更多的推薦大家使用模塊。假定這是你的銀行存款先存后取,結(jié)果應(yīng)該為運(yùn)行的結(jié)果是預(yù)想的另外再服務(wù)器中會(huì)大量使用多進(jìn)程的方式,,等

官方文檔: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。

總的來說是對(duì)補(bǔ)救Python多線程在多核操作系統(tǒng)中的一副良藥。更多的推薦大家使用multiprocessing 模塊。

一些簡(jiǎn)單使用技巧見介紹

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

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

運(yùn)行環(huán)境 Python2.7 ,windows

import time, threading

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

def change_it(n):
    # 先存后取,結(jié)果應(yīng)該為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)

運(yùn)行的結(jié)果會(huì)是一個(gè)隨機(jī)數(shù),就是因?yàn)镻ython的多線程是不安全的,線程之間的調(diào)度會(huì)影響到其他線程的結(jié)果。

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

def change_it(n):
    # 先存后取,結(jié)果應(yīng)該為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)

運(yùn)行的結(jié)果是預(yù)想的0

另外再web服務(wù)器中會(huì)大量使用多進(jìn)程的方式,gunicorn,uwsgi等

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/41247.html

相關(guān)文章

  • Python中單線程、線程進(jìn)程的效率對(duì)比實(shí)驗(yàn)

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

    niceforbear 評(píng)論0 收藏0
  • python大佬養(yǎng)成計(jì)劃----進(jìn)程線程進(jìn)程

    摘要:在一個(gè)進(jìn)程內(nèi)部,要同時(shí)干多件事,就需要同時(shí)運(yùn)行多個(gè)子任務(wù),我們把進(jìn)程內(nèi)的這些子任務(wù)稱為線程。總結(jié)一下,多任務(wù)的實(shí)現(xiàn)方式有三種多進(jìn)程模式多線程模式多進(jìn)程多線程模式線程是最小的執(zhí)行單元,而進(jìn)程由至少一個(gè)線程組成。 進(jìn)程與線程 很多同學(xué)都聽說過,現(xiàn)代操作系統(tǒng)比如Mac OS X,UNIX,Linux,Windows等,都是支持多任務(wù)的操作系統(tǒng)。 什么叫多任務(wù)呢?簡(jiǎn)單地說,就是操作系統(tǒng)可以同時(shí)...

    taowen 評(píng)論0 收藏0
  • Python基礎(chǔ)之使用期物處理并發(fā)

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

    asoren 評(píng)論0 收藏0
  • python基礎(chǔ)教程:異步IO 之 概念和歷史

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

    BicycleWarrior 評(píng)論0 收藏0
  • Python

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

    dailybird 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<