python 多工回顧

2021-09-24 04:59:49 字數 1384 閱讀 3224

回顧一下 python的多工

#coding=utf-8

import threading # 執行緒

import gevent # 協程

from time import sleep,ctime

from multiprocessing import process # 程序

from multiprocessing import pool # 程序池

from multiprocessing.dummy import pool #執行緒池

pool = pool(5) #預設大小是cup的個數

import gevent.monkey

gevent.monkey.path_all()

from gevent.pool import pool # 協程池

def sing():

for i in range(3):

print("正在唱歌...%d"%i)

sleep(1)

def dance():

for i in range(3):

print("正在跳舞...%d"%i)

sleep(1)

if __name__ == '__main__':

# 在python3中,主線程主程序結束,子執行緒,子程序不會結束,並且無序

print('---開始---:%s'%ctime())

t1 = threading.thread(target=sing)

t2 = threading.thread(target=dance)

# t1 = process(target=sing)

# t2 = process(target=dance)

t1.setdaemon(true) # setdaemon(true) 主線程結束子執行緒立刻結束 如果多個子執行緒必須全部設定否則設定無效

# t2.setdaemon(true)

# t1.daemon=true # daemon=true 主程序結束該子程序立刻結束

# t2.daemon=true

t1.start()

t2.start()

# t1.join() #join 主程序(執行緒)阻塞,等待子程序(執行緒) 可以指定阻塞超時時間

# t2.join()

gevent.joinall([

gevent.spawn(sing, "work1"),

gevent.spawn(dance, "work2")

]) #sleep(5) # 遮蔽此行**,試試看,程式是否會立馬結束?

print('---結束---:%s'%ctime())

有錯誤請指正,謝謝

python多工 執行緒

併發 指的是任務數多餘cpu核數,通過作業系統的各種任務排程演算法,實現用多個任務 一起 執行 實際上總有一些任務不在執行,因為切換任務的速度相當快,看上去一起執行而已 並行 指的是任務數小於等於cpu核數,即任務真的是一起執行的 執行緒python的thread模組是比較底層的模組,python的...

python 多工介紹

多工介紹 在現實生活中,有很多的場景中的事情是同時進行的,比如跳舞和唱歌是同時進行的。在程式中,可以使用 來模擬唱歌和跳舞的功能 from time import sleep def sing for i in range 3 print 正在唱歌.d i sleep 1 def dance for...

Python 多工介紹

僅用學習參考 多工介紹 現實生活中 有很多的場景中的事情是同時進行的,比如開車的時候 手和腳共同來駕駛汽車,再比如唱歌跳舞也是同時進行的 試想,如果把唱歌和跳舞這2件事情分開依次完成的話,估計就沒有那麼好的效果了 想一下場景 先唱歌,然後在跳舞,o o哈哈 程式中如下程式,來模擬 唱歌跳舞 這件事情...