Python多线程你真的会吗?一文帮你理清如何join线程

Python作为目前跨平台应用最火的 编程语言 ,已经被很多行业的研究人员所使用,其实与其他编程语言相同,Python也只支持多线程编程,而且Python对于线程的支持也提供了很多方便的方法可以直接调用,从而可以很好的控制线程的执行。

下面咱们就来聊聊Python对于线程所提供的join()方法吧。

join()方法的功能是可以让一个线程等待另一个线程的完成,是Thread模块所提供的,例如当在一个程序执行流中调用其他线程的join()方法时,调用线程就会被阻塞,一直到被join()方法所加入的join线程执行完成。

其实呢, join()方法通常由使用线程的程序调用,可以理解为将一个大问题划分为很多小问题,然后为每个小问题分配一个线程,当这些小问题都执行处理完毕后,才会回到主程序进一步进行接下来的操作。

为了大家能够比较清晰的理解,咱们来看一下“栗子”吧:

Python多线程你真的会吗?一文帮你理清如何join线程_第1张图片

上面咱们所写的程序中, 可以看到一共有三个线程,在咱们所写的主程序中开始位置就启动了咱们所命名为“新线程”的子线程,此时这个线程就会和主线程进行并发执行,然后当主线程的循环变量i等于5时,就会启动咱们所命名为“被Join的线程”的线程,这个线程并不会和主线程并发执行,主线程必须等到这个线程执行结束后才会向下执行,所以在“被Join的线程”的线程执行时,实际上是只有两个子线程并发执行的,分别是“新线程”线程和“被Join的线程”线程,而对于主线程此时则是处于等待状态,这就是join()方法的作用 。

好啦,下面咱们就调用Python解释器来看一下上面咱们所编写的程序的效果吧:

image

运行上面程序,就会输出如下三个线程的并发执行情况:

Python多线程你真的会吗?一文帮你理清如何join线程_第2张图片

Python多线程你真的会吗?一文帮你理清如何join线程_第3张图片

观察上面的输出可以看到,主线程执行到i==5时,程序启动并join了名为“被Join的线程”的线程,所以主线程将一直处于阻塞状态,一直到名为“被Join的线程”的线程执行完成才会跳到主线程“MainThread”中。

最后咱们再来看一下Thread的join()方法的参数吧, 其实join()是有参数的,join的语法结构为join(timeout=None),可以看到join()方法有一个timeout参数,其默认值为None,而参数timeout可以进行赋值,其含义是指定等待被join的线程的时间最长为timeout秒,也就是说当在timeout秒内被join的线程还没有执行结束的话,就不再进行等待了。

好啦,以上就是今天咱们所聊的关于Python控制线程中的join线程的相关知识,希望大家能够学会join()方法的调用,今天就聊到这吧,下次再见哦![再见]

一文就能get!带你了解Python模块导入的真相,拿走不谢

一文提升你的编程能力,全面理解Python包的导入,拿走不谢

Python多线程你真的会吗?一文帮你理清如何join线程_第4张图片

如果真的遇到好的同事,那算你走运,加油,抓紧学到手。

python分享企鹅圈: 1055012877

包含python, 爬虫等人工智能软件,以及爬虫、网络安全、全自动办公的编程方法。

打造从零基础到项目开发上手实战全方位解析!

点击加入

你可能感兴趣的:(python,人工智能,python,多线程,编程语言,pycharm)