python 多线程系列 (二)

本贴最后更新于 900 天前,其中的信息可能已经事过景迁

前言:上一篇文章我们讲了多线程的使用场景,通过一个简单的例子了解了多线程在IO密集型任务中确实能提高代码执行效率,接下来我们聊一聊多线程的创建方式。

一、实例化Thread类创建
import requests
import threading

#干活函数,请求测试派,其他的啥都不干
def get_url(url):
    requests.get(url=url)

if __name__ == '__main__':
    url = "http://testingpai.com/recent"
    threads = []
    for i in range(50):
        #创建子线程
        th = threading.Thread(target=get_url,args=(url,))
        threads.append(th)
    #启动子线程
    for val in threads:
        val.start()
    #主线程等待子线程执行结束再结束
    for val in threads:
        val.join()
二、继承Thread重写run方法创建
import requests
import threading

class TestThreading(threading.Thread):
    def __init__(self):
        #调用父类初始化函数进行必要的初始化
        super().__init__()

    #重写run方法
    def run(self):
        thread_name = threading.current_thread().name
        thread_id = threading.current_thread().ident
        print('子线程id={},子线程名称={}:'.format(thread_id, thread_name))
        print("干活的函数逻辑写在这里")
        res = requests.get(url="http://testingpai.com/recent")
        print(res)

if __name__ == '__main__':
    #启动子线程
    for i in range(3):
        th = TestThreading()
        th.start()
1 回帖
请输入回帖内容 ...
  • AMuBai

    坚持学习!码住!666!