python 多執行緒演練3

2021-10-04 21:36:32 字數 2036 閱讀 2052

1.queue執行緒安全佇列:

# encoding=utf-8

from queue import queue

import time

import threading

# # 佇列有四個

#q = queue(4)

# for x in range(4):

# q.put(x)

## for x in range(4):

# print(q.get())

# # get 預設阻塞

# q.get(block=true)

# # put 一直阻塞,直到不滿

# q.put(block=true)

defset_value

(q):

index =

0while

true

: q.put (index)

index +=

1 time.sleep(3)

defget_value

(q):

while

true

:print

(q.get())

defmain()

: q = queue(4)

# args 需乙個列表或引數

t1 = threading.thread(target=set_value,args=

[q])

t2 = threading.thread(target=get_value,args=

[q])

t1.start(

) t2.start(

)if __name__ ==

'__main__'

: main(

)

演練: 爬取表情包(使用xpath方法)

# xpath

# encoding=utf-8

import requests

from lxml import etree

from urllib import request

# os : 獲取檔案字尾名

import os

import re

defparse_page

(url)

: headers =

response = requests.get(url,headers=headers)

# text 自動解碼正確

# print(response.text)

text = response.text

html = etree.html(text)

imgs = html.xpath(

'//div[@class="col-sm-9 center-wrap"]//img[@class!="gif"]'

)for img in imgs:

img_url = img.get(

'data-original'

) alt = img.get(

'alt'

) alt = re.sub(r'[\??\.,。!!]',''

,alt)

# extension : 副檔名 進行分割

suffix = os.path.splitext(img_url)[1

] filename = alt + suffix

request.urlretrieve(img_url,

'biaoqingbao/'

+filename)

defmain()

:for x in

range(1

,18):

url =

''.format

(x) parse_page(url)

break

if __name__ ==

'__main__'

: main(

)

python 多執行緒小演練

encoding utf 8 傳統的方式 執行 3 次 def coding for x in range 3 print 正在寫 s x time.sleep 1 def drawing for x in range 3 print 正在畫圖 s x time.sleep 1 def main c...

Python 多執行緒3 同步執行緒

現在假設這樣乙個例子 有乙個全域性的計數num,每個執行緒獲取這個全域性的計數,根據num進行一些處理,然後將num加1。很容易寫出這樣的 encoding utf 8 import threading import time class mythread threading.thread def ...

Python3多執行緒

學習python執行緒 python3 執行緒中常用的兩個模組為 thread threading 推薦使用 thread 模組已被廢棄。使用者可以使用 threading 模組代替。所以,在 python3 中不能再使用 thread 模組。為了相容性,python3 將 thread 重新命名為...