Day20-多線程

一、多線程

每個程序在運行的時候系統(tǒng)都會為這個進程創(chuàng)建一個線程,這個線程我們叫主線程
程序員自己創(chuàng)建除線程我們叫子線程
程序員自己創(chuàng)建的線程叫子線程

多個任務在一個線程中按順序一個一個執(zhí)行的(線程的串行)
多個線程的任務同時執(zhí)行

import time
import datetime
from random import randint
import threading


def download(file):
    print(datetime.datetime.now(), '開始下載,%s' % file)
    # sleep(時間):將當前線程阻塞指定的時間
    # 時間單位:秒
    time.sleep(randint(5, 10))
    print(datetime.datetime.now(), '下載%s結(jié)束' % file)


"""
python通過threading標準庫來支持多線程
"""

if __name__ == '__main__':
    """
    Thread(target= , args=)
    target : 傳一個需要在子線程中執(zhí)行函數(shù)(類型是function的變量)
    args: 在子線程中調(diào)用target對應函數(shù)的時候,該傳什么參數(shù)
    """
    # current_thread()獲取當前線程
    t1 = threading.Thread(target=download, args=('阿甘正傳',))
    t1.start()
    t2 = threading.Thread(target=download, args=('救贖',))
    t2.start()

二、創(chuàng)建進程的方式

創(chuàng)建線程方式1:

直接通過Thread類創(chuàng)建對象,將需要在子線程中執(zhí)行的函數(shù)作為target參數(shù)穿進去

創(chuàng)建線程方式2:

a.自己寫一個類去繼承Thrad類
b.重寫實現(xiàn)類的run方法,run中的任務就是在子線程中執(zhí)行的任務
c.創(chuàng)建當前類的對象,就是線程對象.然后調(diào)用start去執(zhí)行線程中任務
from threading import Thread
import datetime
from time import sleep

# 創(chuàng)建線程類
class DownLoadThread(Thread):
    """下載線程類"""

    def __init__(self, file):
        super().__init__()
        self.file = file

    def run(self):
        print('%s開始下載, ' % self.file, datetime.datetime.now())
        sleep(5)
        print('%s下載結(jié)束, ' % self.file, datetime.datetime.now())


# 創(chuàng)建線程對象
t1 = DownLoadThread('火影忍者')
t2 = DownLoadThread('進擊的巨人')
# 通過start去執(zhí)行run中任務
t1.start()
t2.start()

三、多線程的服務器與客戶端

服務器代碼

import socket
from threading import Thread


class Onlien(Thread):
    def __init__(self, conversation: socket.socket, add):
        super().__init__()
        self.conversation = conversation
        self.add = add

    def run(self):
        while True:
            message_re = self.conversation.recv(1024).decode('utf-8')
            print(self.add[0], ':', message_re)
            self.conversation.send('你好!你好'.encode('utf-8'))


def creat_server():
    server = socket.socket()
    server.bind(('10.7.156.86', 8080))
    server.listen(512)
    while True:
        conversation, add = server.accept()
        # 創(chuàng)建處理這個請求對應的子線程
        t = Onlien(conversation, add)
        t.start()


if __name__ == '__main__':
    creat_server()

客戶端代碼

import socket
client = socket.socket()
client.connect(('10.7.156.97', 8081))
while True:
    message = input('>>>')
    client.send(message.encode('utf-8'))
    print(client.recv(1024).decode())
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末淌友,一起剝皮案震驚了整個濱河市窑睁,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌托慨,老刑警劉巖鼻由,帶你破解...
    沈念sama閱讀 221,635評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異厚棵,居然都是意外死亡蕉世,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評論 3 399
  • 文/潘曉璐 我一進店門婆硬,熙熙樓的掌柜王于貴愁眉苦臉地迎上來狠轻,“玉大人,你說我怎么就攤上這事彬犯∠蚵ィ” “怎么了?”我有些...
    開封第一講書人閱讀 168,083評論 0 360
  • 文/不壞的土叔 我叫張陵谐区,是天一觀的道長湖蜕。 經(jīng)常有香客問我,道長宋列,這世上最難降的妖魔是什么昭抒? 我笑而不...
    開封第一講書人閱讀 59,640評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮炼杖,結(jié)果婚禮上灭返,老公的妹妹穿的比我還像新娘。我一直安慰自己坤邪,他們只是感情好熙含,可當我...
    茶點故事閱讀 68,640評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著罩扇,像睡著了一般婆芦。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上喂饥,一...
    開封第一講書人閱讀 52,262評論 1 308
  • 那天消约,我揣著相機與錄音,去河邊找鬼员帮。 笑死或粮,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的捞高。 我是一名探鬼主播氯材,決...
    沈念sama閱讀 40,833評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼渣锦,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了氢哮?” 一聲冷哼從身側(cè)響起袋毙,我...
    開封第一講書人閱讀 39,736評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎冗尤,沒想到半個月后听盖,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,280評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡裂七,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,369評論 3 340
  • 正文 我和宋清朗相戀三年皆看,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片背零。...
    茶點故事閱讀 40,503評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡腰吟,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出徙瓶,到底是詐尸還是另有隱情毛雇,我是刑警寧澤,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布倍啥,位于F島的核電站禾乘,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏虽缕。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,870評論 3 333
  • 文/蒙蒙 一蒲稳、第九天 我趴在偏房一處隱蔽的房頂上張望氮趋。 院中可真熱鬧,春花似錦江耀、人聲如沸剩胁。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,340評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽昵观。三九已至,卻和暖如春舌稀,著一層夾襖步出監(jiān)牢的瞬間啊犬,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,460評論 1 272
  • 我被黑心中介騙來泰國打工壁查, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留觉至,地道東北人。 一個月前我還...
    沈念sama閱讀 48,909評論 3 376
  • 正文 我出身青樓睡腿,卻偏偏與公主長得像语御,于是被迫代替她去往敵國和親峻贮。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,512評論 2 359

推薦閱讀更多精彩內(nèi)容

  • 進程和線程 進程 所有運行中的任務通常對應一個進程,當一個程序進入內(nèi)存運行時,即變成一個進程.進程是處于運行過程中...
    勝浩_ae28閱讀 5,117評論 0 23
  • 進程和線程 進程 所有運行中的任務通常對應一個進程,當一個程序進入內(nèi)存運行時,即變成一個進程.進程是處于運行過程中...
    小徐andorid閱讀 2,814評論 3 53
  • ??一個任務通常就是一個程序应闯,每個運行中的程序就是一個進程纤控。當一個程序運行時,內(nèi)部可能包含了多個順序執(zhí)行流碉纺,每個順...
    OmaiMoon閱讀 1,680評論 0 12
  • 單任務 單任務的特點是排隊執(zhí)行嚼黔,也就是同步,就像再cmd輸入一條命令后惜辑,必須等待這條命令執(zhí)行完才可以執(zhí)行下一條命令...
    Steven1997閱讀 1,182評論 0 6
  • 女漢子應是個中性詞唬涧,沒有人會從內(nèi)心里認為這是個褒義詞,盡管會帶著點佩服盛撑。 百度百科中這樣定義女漢子: 女漢子碎节,是指...
    子姆閱讀 470評論 7 10