Python多线程学习(一)

701 阅读2分钟

本文主要是入门 Python 语言的多线程知识

  1. 多线程可以近似于看作多任务的同时执行,线程是操作系统中直接支持的单元,各种主流语言都有多线程技术,但是 Python 创建的线程实例是真正实际的线程,不是虚拟模拟的。

  2. Python 中提供了两个库,threading_thread ,Python3 推荐使用前者。前者也对后者进行了封装。

  3. 启动一个线程,其实就是将要运行的任务封装到一个函数里面,创建一个线程实例,并将这个函数传入线程实例,最后开始运行线程即可。

  4. 目前实际的体会到的线程的主要特点:

    • 程序的运行速度可能会加快
    • 线程可以把耗时长的的任务放到后台去执行
    • 用户界面可以更加吸引人,(我觉得可能依托于上一个特点,正是因为都放到后台运行任务,互动体验也有提升),比如进度条
    • 在一些等待的任务实现上如用户输入、文件读写和网络收发数据等,线程就比较有用了。在这种情况下我们可以释放一些珍贵的资源如内存占用等等(这个还没体会...)。

实战( Python3 环境 )

    def my_func():
        print("我的线程 %s 正在运行..." % threading.current_thread().name)
        n=0
        while n<3:
            n += 1
            print("%s >>> %s" % (threading.current_thread().name, n))
            time.sleep(1)
        print('我的线程 %s 结束' % threading.current_thread().name)
    print("主线程 %s 正在运行..." % threading.current_thread().name)
    t = threading.Thread(target = my_func, name = 'myThread')
    t.start()
    t.join()
    print("主线程 %s 结束" % threading.current_thread().name)

运行结果:

主线程 MainThread 正在运行...
我的线程 myThread 正在运行...
myThread >>> 1
myThread >>> 2
myThread >>> 3
我的线程 myThread 结束
主线程 MainThread 结束

小结:

  1. 每个进程中默认启动至少有一个子线程,被称为主线程,叫 MainThread ,由主线程可以启动其他子线程,子线程的名字在创建时可以定义。不指定则默认按 Thread-1Thread-2... 方式命名。

  2. threading 模块中的的 current_thread() 函数,返回当前实例

本文参考(不分先后顺序):

菜鸟:www.runoob.com/python3/pyt…

廖雪峰的网站:www.liaoxuefeng.com/wiki/101695…

希望看客老爷打赏些喝茶钱

支付宝

支付宝

微信

微信