【python爬虫】Python线程池使用

线程池代码示例:

原则:线程池处理阻塞并且耗时的操作

# 线程池
import time
# 导入线程池对应的类
from multiprocessing import Pool


# 单线程串行爬虫
def get_data(url):
    print("正在下载%s" % url)
    time.sleep(2)
    print("%s 下载完成" % url)
    return url + " done"


if __name__ == "__main__":
    urls = ['12', '33', '212']
    start_time = time.time()
    # 实例化一个线程对象 参数为线程池开辟的线程数目
    pool = Pool(4)
    # 通过pool.map方法使用线程池,
    # 第一个参数为函数变量,第二个为可迭代对象,
    # pool会把可迭代对象中的每一个交给线程池中的线程去执行,
    # map方法的返回值就是函数对象的返回值组成的数组
    ans_list = pool.map(get_data, urls)
    # 调用后必须关闭线程池,释放资源并且回到主线程,否则不会退出
    pool.close()
    pool.join()
    print(ans_list)  # ['12 done', '33 done', '212 done']
    end_time = time.time()
    print("耗时:%.2f second" % (end_time - start_time))  # 耗时:2 second
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇