多线程介绍与threading模块应用以及使用Thread类创建多线程

Posted zyde-2893

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多线程介绍与threading模块应用以及使用Thread类创建多线程相关的知识,希望对你有一定的参考价值。

1.多线程:

多线程是为了同步完成多项任务,不是为了提高运行效率,而是为了提高资源使用效率来提高系统的效率。线程是在同一时间需要完成多项任务的时候实现的。

最简单的比喻多线程就像火车的每一节车厢,而进程则是火车。车厢离开火车是无法跑动的,同理火车也不可能只有一节车厢。多线程的出现就是为了提高效率。同时它的出现也带来了一些问题。

线程与进程的关系:

进程就是一个应用程序在处理机上的一次执行过程,它是一个动态的概念,而线程是进程中的一部分,进程包含多个线程在运行。一个程序运行至少一个进程,一个进程里面至少包含一个线程,线程是进程的组成部分。

 

2.threading模块的简单使用:

import threading
import time
def coding():
    for x in range(3):
        print(‘正在写代码...‘)
        time.sleep(1)
def drawing():
    for x in range(3):
        print(‘正在画图%s‘%threading.current_thread())#查看线程
        time.sleep(1)
def main():
    t1 = threading.Thread(target=coding) #创建线程
    t2 = threading.Thread(target=drawing)

    t1.start() #启动线程
    t2.start()

    # print(threading.enumerate())#查看线程数量与名字
if __name__ == ‘__main__‘:
    main()

  

3.使用Thread类创建多线程:

为了让线程代码更好的封装。可以使用threading 模块下的Thread类,继承自这个类,然后实现run 方法。线程就会自动运行run方法中的代码。

import threading
import time

class CodingThread(threading.Thread):
    def run(self):
        for x in range(3):
            print(‘正在写代码%s‘ % threading.current_thread())
            time.sleep(1)

class DrawingThread(threading.Thread):
    def run(self):
        for x in range(3):
            print(‘正在画图%s‘ % threading.current_thread())
            time.sleep(1)


def main():
    t1 = CodingThread()
    t2 = DrawingThread()

    t1.start()
    t2.start()

if __name__ == ‘__main__‘:
    main()

  

以上是关于多线程介绍与threading模块应用以及使用Thread类创建多线程的主要内容,如果未能解决你的问题,请参考以下文章

一文读懂多线程

threading多线程模块

多线程与多进程介绍

python threading模块使用 以及python多线程操作的实践(使用Queue队列模块)

python多线程多进程协程的使用

2020Python修炼记python并发编程多线程-应用部分