Python学习笔记(二十八)多线程

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python学习笔记(二十八)多线程相关的知识,希望对你有一定的参考价值。

摘抄自:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/00143192823818768cd506abbc94eb5916192364506fa5d000

 

多任务可以由多进程完成,也可以由一个进程内的多线程完成。

我们前面提到了进程是由若干线程组成的,一个进程至少有一个线程。

由于线程是操作系统直接支持的执行单元,因此,高级语言通常都内置多线程的支持,Python也不例外,并且,Python的线程是真正的Posix Thread,而不是模拟出来的线程。

 

Python的标准库提供了两个模块:_thread 和 threading_thread是低级模块,threading是高级模块,对_thread进行了封装。绝大多数情况下,我们只需要使用threading这个高级模块。

启动一个线程就是把一个函数传入并创建Thread实例,然后调用start()开始执行:

 

import time, threading

# 新线程执行的代码:
def loop():
    print(thread %s is running... % threading.current_thread().name)
    n = 0
    while n < 5:
        n = n + 1
        print(thread %s >>> %s % (threading.current_thread().name, n))
        time.sleep(1)
    print(thread %s ended. % threading.current_thread().name)

print(thread %s is running... % threading.current_thread().name)
t = threading.Thread(target=loop, name=LoopThread)
t.start()
t.join()
print(thread %s ended. % threading.current_thread().name)

 

以上是关于Python学习笔记(二十八)多线程的主要内容,如果未能解决你的问题,请参考以下文章

day9-Python学习笔记(二十二)多线程,多进程

“全栈2019”Java多线程第二十八章:公平锁与非公平锁详解

Python学习笔记(二十七)多进程 (进程和线程开始)

流畅python学习笔记第十八章:使用asyncio包处理并发

Java基础学习笔记二十八 管家婆综合项目

Qt系列文章之二十八(基于QThread多线程概述)