第025天 HTTP協(xié)議和多線程基礎

python中有一個第三方庫叫'requests'中提供了所有和http請求相關的函數
1.get請求
get(url, params=None) - 發(fā)送請求獲取服務器返回的響應
url - 請求地址, 字符串
params - 請求參數, 字典
方法一: (既適用于get也適用于post)

import response
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.獲取請求結果
1)響應頭

print(response.headers)
# {'Server': 'nginx', 'Date': 'Thu, 15 Aug 2019 03:39:09 GMT', 'Content-Type': 'application/json;charset=utf-8', 'Transfer-Encoding': 'chunked', 'Connection': 'keep-alive', 'Access-Control-Allow-Origin': '*', 'Access-Control-Allow-Methods': 'POST, GET, OPTIONS, DELETE', 'Access-Control-Max-Age': '3600', 'Access-Control-Allow-Headers': 'x-requested-with'}

2)響應體(數據)

# a.獲取二進制對應的原數據(數據本身是圖片眠屎、壓縮文件、視頻等文件數據)
content = response.content
print(type(content))

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

# c.獲取json數據(json轉換成python對應的數據)
json = response.json()
print(type(json))
print(json)

每個進程默認都有一條線程,這個線程叫主線程。其他線程叫子線程
threading模塊中Thread的對象就是線程對象康吵,當程序中需要子線程就創(chuàng)建Thread類的對象

def download(film_name):
    # film_name = '魔童降世'
    print('開始下載%s:%s' % (film_name, datetime.now()))
    print(film_name, threading.current_thread())
    sleep(5)
    print('%s下載結束:%s' % (film_name, datetime.now()))

if __name__ == '__main__':
    download('魔童降世')
    download('掃毒2')
    download('怦然心動')

1.創(chuàng)建線程對象
Thread(target=None,args=()) - 創(chuàng)建并且返回一個子線程對象
target - 函數類型(function), 在線程啟動的時候這個函數會在子線程中執(zhí)行
args - 元祖帖族,元祖中的元素就是target對應的函數在子線程中調用的時候傳的實參

    t1 = threading.Thread(target=download, args=('魔童降世',))
    t2 = threading.Thread(target=download, args=('掃毒2',))
    t3 = threading.Thread(target=download, args=('怦然心動',))
    print(threading.current_thread())

2.啟動線程
線程對象.start() - 讓線程去執(zhí)行線程中的任務target(*args)

    t1.start()
    t2.start()
    t3.start()

線程中的任務執(zhí)行完成線程就結束; 程序出現(xiàn)異常結束的是線程,不是進程
進程中的所有線程就結束進程才結束;
1.聲明一個類繼承Thread
2.實現(xiàn)類中的run方法仔拟,這個方法中的代碼就是需要在子線程中執(zhí)行的代碼
3.需要子線程的時候就創(chuàng)建自己聲明的類的對象合是,并且不需要任何參數

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()))
        print(current_thread())
        sleep(5)
        print('%s下載結束:%s' % (self.film_name, datetime.now()))

if __name__ == '__main__':
    t1 = DownloadThread('魔童降世')
    t2 = DownloadThread('掃毒')

    t1.start()
    t2.start()
    print([1, 2, 3][10])

join的用法

def download(film_name):
    print('開始下載%s:%s' % (film_name, datetime.now()))
    sleep(randint(2, 7))
    print('%s下載結束:%s' % (film_name, datetime.now()))


if __name__ == '__main__':
    # 1.join的用法
    """
    線程對象.join()   -  當前線程對象任務執(zhí)行完成后才能去執(zhí)行后面的代碼
    """
    t1 = Thread(target=download, args=('魔童降世',))
    t2 = Thread(target=download, args=('掃毒2',))
    t3 = Thread(target=download, args=('怦然心動',))

    # 情況一:三個電影都下載完成才執(zhí)行'下載完成!!!'
    # t1.start()
    # t2.start()
    # t3.start()
    #
    # t1.join()
    # t2.join()
    # t3.join()
    # print('下載完成!!!!')

    # 情況二: 電影1下載完成后才開始同時下載電影2和電影3
    t1.start()
    t1.join()
    t2.start()
    t3.start()
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末了罪,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子聪全,更是在濱河造成了極大的恐慌泊藕,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,807評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件难礼,死亡現(xiàn)場離奇詭異娃圆,居然都是意外死亡,警方通過查閱死者的電腦和手機鹤竭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,284評論 3 399
  • 文/潘曉璐 我一進店門踊餐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人臀稚,你說我怎么就攤上這事∪担” “怎么了吧寺?”我有些...
    開封第一講書人閱讀 169,589評論 0 363
  • 文/不壞的土叔 我叫張陵,是天一觀的道長散劫。 經常有香客問我稚机,道長,這世上最難降的妖魔是什么获搏? 我笑而不...
    開封第一講書人閱讀 60,188評論 1 300
  • 正文 為了忘掉前任赖条,我火速辦了婚禮,結果婚禮上常熙,老公的妹妹穿的比我還像新娘纬乍。我一直安慰自己,他們只是感情好裸卫,可當我...
    茶點故事閱讀 69,185評論 6 398
  • 文/花漫 我一把揭開白布仿贬。 她就那樣靜靜地躺著,像睡著了一般墓贿。 火紅的嫁衣襯著肌膚如雪茧泪。 梳的紋絲不亂的頭發(fā)上蜓氨,一...
    開封第一講書人閱讀 52,785評論 1 314
  • 那天,我揣著相機與錄音队伟,去河邊找鬼穴吹。 笑死,一個胖子當著我的面吹牛嗜侮,可吹牛的內容都是我干的刀荒。 我是一名探鬼主播,決...
    沈念sama閱讀 41,220評論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼棘钞,長吁一口氣:“原來是場噩夢啊……” “哼缠借!你這毒婦竟也來了?” 一聲冷哼從身側響起宜猜,我...
    開封第一講書人閱讀 40,167評論 0 277
  • 序言:老撾萬榮一對情侶失蹤泼返,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后姨拥,有當地人在樹林里發(fā)現(xiàn)了一具尸體绅喉,經...
    沈念sama閱讀 46,698評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,767評論 3 343
  • 正文 我和宋清朗相戀三年叫乌,在試婚紗的時候發(fā)現(xiàn)自己被綠了柴罐。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,912評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡憨奸,死狀恐怖革屠,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情排宰,我是刑警寧澤似芝,帶...
    沈念sama閱讀 36,572評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站板甘,受9級特大地震影響党瓮,放射性物質發(fā)生泄漏。R本人自食惡果不足惜盐类,卻給世界環(huán)境...
    茶點故事閱讀 42,254評論 3 336
  • 文/蒙蒙 一寞奸、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧在跳,春花似錦枪萄、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,746評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至吐咳,卻和暖如春逻悠,著一層夾襖步出監(jiān)牢的瞬間元践,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,859評論 1 274
  • 我被黑心中介騙來泰國打工童谒, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留单旁,地道東北人。 一個月前我還...
    沈念sama閱讀 49,359評論 3 379
  • 正文 我出身青樓饥伊,卻偏偏與公主長得像象浑,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子琅豆,可洞房花燭夜當晚...
    茶點故事閱讀 45,922評論 2 361

推薦閱讀更多精彩內容

  • 線程 操作系統(tǒng)線程理論 線程概念的引入背景 進程 之前我們已經了解了操作系統(tǒng)中進程的概念茫因,程序并不能單獨運行蚪拦,只有...
    go以恒閱讀 1,647評論 0 6
  • 一. 操作系統(tǒng)概念 操作系統(tǒng)位于底層硬件與應用軟件之間的一層.工作方式: 向下管理硬件,向上提供接口.操作系統(tǒng)進行...
    月亮是我踢彎得閱讀 5,977評論 3 28
  • 多進程 要讓python程序實現(xiàn)多進程,我們先了解操作系統(tǒng)的相關知識冻押。 Unix驰贷、Linux操作系統(tǒng)提供了一個fo...
    蓓蓓的萬能男友閱讀 599評論 0 1
  • 線程 引言&動機 考慮一下這個場景,我們有10000條數據需要處理洛巢,處理每條數據需要花費1秒括袒,但讀取數據只需要0....
    不浪漫的浪漫_ea03閱讀 365評論 0 0
  • Java多線程學習 [-] 一擴展javalangThread類 二實現(xiàn)javalangRunnable接口 三T...
    影馳閱讀 2,966評論 1 18