多線程基礎(chǔ)_筆記

一、http請求

Python中有一個第三方庫叫‘request’中提供了所有和http請求相關(guān)的函數(shù)

1寒波、get請求

get(url, params=None) ——發(fā)送請求獲取服務(wù)器返回的響應(yīng)
url ——請求地址鞋真,字符串
params ——請求參數(shù)崇堰,字典

2、獲取請求結(jié)果

1)響應(yīng)頭
2)響應(yīng)體(數(shù)據(jù))
a、獲取二進(jìn)制對應(yīng)的原數(shù)據(jù)(數(shù)據(jù)本身是圖片海诲、壓縮文件繁莹、視頻等文件數(shù)據(jù))
b、獲取字符類型的數(shù)據(jù)
c特幔、獲取json數(shù)據(jù)(json轉(zhuǎn)換成Python對應(yīng)的類型

import requests
# 方法一: (既適用于get也適用于post)
url = 'https://www.apiopen.top/satinApi'
params = {'type': 1, 'page': 2}
response = requests.get(url, params)
print(response)

# 方法二: 只能用于get請求
url = 'https://www.apiopen.top/satinApi?type=1&page=1'
response = requests.get(url)
# print(response)

# 2.獲取請求結(jié)果
# 1)響應(yīng)頭
print(response.headers)

# 2)響應(yīng)體(數(shù)據(jù))
# a.獲取二進(jìn)制對應(yīng)的原數(shù)據(jù)(數(shù)據(jù)本身是圖片咨演、壓縮文件、視頻等文件數(shù)據(jù))
content = response.content
print(type(content))

# b.獲取字符類型的數(shù)據(jù)
text = response.text
print(type(text))

# c.獲取json數(shù)據(jù)(json轉(zhuǎn)換成python對應(yīng)的數(shù)據(jù))
json = response.json()
print(type(json))
print(json)

二蚯斯、多線程基礎(chǔ)1

"""

1雪标、線程

每個進(jìn)程默認(rèn)都有一條線程,這個線程叫主線程溉跃,其他叫子線程
threading模塊中Thread的對象就是線程對象,當(dāng)程序中需要子線程就創(chuàng)建Thread類的對象

1)—創(chuàng)建線程對象:

Thread(target=None, args=()) —創(chuàng)建并且返回一個子線程對象
target —函數(shù)類型(function)告抄,在線程啟動的時候這個函數(shù)會在子線程中執(zhí)行
args —元祖撰茎,元祖中的元素就是target對應(yīng)的函數(shù)在子線程中調(diào)用的時候傳的實參

2)—啟動線程

線程對象.start() —讓線程去執(zhí)行線程中的任務(wù)
target(*args)
import threading

from datetime import datetime
from time import sleep
def download(film_name):
    print('開始下載%s:%s' % (film_name, datetime.now()))
    sleep(5)
    print('下載結(jié)束%s:%s' % (film_name, datetime.now()))
if __name__ == '__main__':
    t1 = threading.Thread(target=download, args=('魔童降世',))
    t2 = threading.Thread(target=download, args=('掃毒2',))
    t3 = threading.Thread(target=download, args=('阿凡達(dá)',))
    t1.start()
    t2.start()
    t3.start()

三、多線程基礎(chǔ)2

1打洼、申明一個類繼承Thread
2龄糊、實現(xiàn)類中的run方法,這個方法中的代碼就是需要在子線程中執(zhí)行的代碼
3募疮、需要子線程的時候就創(chuàng)建自己申明的類的對象炫惩,并且不需要傳參

線程中的任務(wù)執(zhí)行完成線程就結(jié)束
進(jìn)程中的所有進(jìn)程都結(jié)束進(jìn)程才結(jié)束
程序出現(xiàn)異常結(jié)束的是線程,不是進(jìn)程

from threading import *
from datetime import datetime
from time import sleep
class DownloadThread(Thread):
    def __init__(self, film_name):
        super().__init__()
        self.film_name = film_name

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


if __name__ == '__main_':
    t1 = DownloadThread('魔童降世')
    t2 = DownloadThread('追龍2')
    t1.start()
    t2.start()

四阿浓、join用法

from threading import *
from datetime import datetime
from time import *
from random import *


def download(file_name):
    print('開始下載%s:%s', file_name, datetime.now())
    sleep(randint(3, 7))
    print('下載結(jié)束%s:%s', file_name, datetime.now())


if __name__ == '__main__':
    # join的用法
    """
    線程對象.join() —當(dāng)前線程對象任務(wù)執(zhí)行完成后才能去執(zhí)行后面的代碼
    """
    t1 = Thread(target=download, args=('魔童降世',))
    t2 = Thread(target=download, args=('掃毒2',))
    t3 = Thread(target=download, args=('阿凡達(dá)',))
    t1.start()
    t2.start()
    t3.start()
    # 三個電影都下載完成才執(zhí)行打印‘全部下載完成’
    t1.join()  # 可以用在不同的位置來確定執(zhí)行順序
    t2.join()
    t3.join()
    print('全部下載完成')
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末他嚷,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子芭毙,更是在濱河造成了極大的恐慌筋蓖,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,826評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件退敦,死亡現(xiàn)場離奇詭異粘咖,居然都是意外死亡,警方通過查閱死者的電腦和手機侈百,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評論 3 395
  • 文/潘曉璐 我一進(jìn)店門瓮下,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人钝域,你說我怎么就攤上這事讽坏。” “怎么了网梢?”我有些...
    開封第一講書人閱讀 164,234評論 0 354
  • 文/不壞的土叔 我叫張陵震缭,是天一觀的道長。 經(jīng)常有香客問我战虏,道長拣宰,這世上最難降的妖魔是什么党涕? 我笑而不...
    開封第一講書人閱讀 58,562評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮巡社,結(jié)果婚禮上膛堤,老公的妹妹穿的比我還像新娘。我一直安慰自己晌该,他們只是感情好肥荔,可當(dāng)我...
    茶點故事閱讀 67,611評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著朝群,像睡著了一般燕耿。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上姜胖,一...
    開封第一講書人閱讀 51,482評論 1 302
  • 那天誉帅,我揣著相機與錄音,去河邊找鬼右莱。 笑死蚜锨,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的慢蜓。 我是一名探鬼主播亚再,決...
    沈念sama閱讀 40,271評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼晨抡!你這毒婦竟也來了氛悬?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,166評論 0 276
  • 序言:老撾萬榮一對情侶失蹤凄诞,失蹤者是張志新(化名)和其女友劉穎圆雁,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體帆谍,經(jīng)...
    沈念sama閱讀 45,608評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡伪朽,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,814評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了汛蝙。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片烈涮。...
    茶點故事閱讀 39,926評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖窖剑,靈堂內(nèi)的尸體忽然破棺而出坚洽,到底是詐尸還是另有隱情,我是刑警寧澤西土,帶...
    沈念sama閱讀 35,644評論 5 346
  • 正文 年R本政府宣布讶舰,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏跳昼。R本人自食惡果不足惜般甲,卻給世界環(huán)境...
    茶點故事閱讀 41,249評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望鹅颊。 院中可真熱鬧敷存,春花似錦、人聲如沸堪伍。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,866評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽帝雇。三九已至涮俄,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間尸闸,已是汗流浹背禽拔。 一陣腳步聲響...
    開封第一講書人閱讀 32,991評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留室叉,地道東北人。 一個月前我還...
    沈念sama閱讀 48,063評論 3 370
  • 正文 我出身青樓硫惕,卻偏偏與公主長得像茧痕,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子恼除,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,871評論 2 354

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

  • Java多線程學(xué)習(xí) [-] 一擴(kuò)展javalangThread類 二實現(xiàn)javalangRunnable接口 三T...
    影馳閱讀 2,957評論 1 18
  • 本文主要講了java中多線程的使用方法踪旷、線程同步、線程數(shù)據(jù)傳遞豁辉、線程狀態(tài)及相應(yīng)的一些線程函數(shù)用法令野、概述等。 首先講...
    李欣陽閱讀 2,454評論 1 15
  • 線程 操作系統(tǒng)線程理論 線程概念的引入背景 進(jìn)程 之前我們已經(jīng)了解了操作系統(tǒng)中進(jìn)程的概念,程序并不能單獨運行餐抢,只有...
    go以恒閱讀 1,641評論 0 6
  • 協(xié)議和多線程基礎(chǔ) review 1.服務(wù)器套接字 創(chuàng)建套接字對象 綁定ip和端口 開始監(jiān)聽 保證程序一直運行(死循...
    漫磋嗟閱讀 294評論 0 0
  • 一. 操作系統(tǒng)概念 操作系統(tǒng)位于底層硬件與應(yīng)用軟件之間的一層.工作方式: 向下管理硬件,向上提供接口.操作系統(tǒng)進(jìn)行...
    月亮是我踢彎得閱讀 5,967評論 3 28