专栏名称: Python小屋
清华出版社《Python程序设计》系列教材作者董付国的Python小屋。介绍Python基础语法知识、标准库、扩展库知识,探讨Python在各领域的应用。
目录
相关文章推荐
Python爱好者社区  ·  重磅!又一本《大模型书》开源,449页PDF! ·  4 天前  
Python爱好者社区  ·  Beautiful ... ·  6 天前  
Python中文社区  ·  牛市开户不需要找关系,找我就行! ·  1 周前  
Python中文社区  ·  拒绝无脑梭哈!用量化信号捕捉行情机会 ·  1 周前  
Python爱好者社区  ·  60个拿来即用的Python办公自动化实战( ... ·  1 周前  
51好读  ›  专栏  ›  Python小屋

Python多线程编程基础3:创建线程与调用函数的区别

Python小屋  · 公众号  · Python  · 2017-07-12 11:26

正文

在上一节Python多线程编程基础2:如何创建线程中,我们已经知道,创建线程并运行实际上也是执行一段代码,那么把这些代码封装到函数中之后,直接调用函数和创建线程再运行有什么区别呢?这是本文要解释的内容。简单地说,调用函数属于阻塞模式,必须要等函数运行结束并返回之后才能执行后面的代码;而线程属于并发非阻塞模式,创建并启动子线程之后子线程和主线程并发执行,除非有现成同步的代码和机制。

下面代码首先定义一个函数,然后调用这个函数,函数执行结束之后再继续执行后面的代码:

from threading import Thread

from time import sleep


def demo(n):

    sleep(n)

    print(n)


demo(3)

print('ok')


运行结果为:

3

ok


而下面的代码首先定义函数,然后创建线程来执行这个函数中的代码:

from threading import Thread

from time import sleep


def demo(n):

    sleep(n)

    print(n)


t = Thread(target=demo, args=(3,))

t.start()

print('ok')

运行结果为:

ok

3


--------------我是分割线-------------

有关阅读:

Python多线程编程基础1:为什么要使用线程

Python多线程编程基础2:如何创建线程


--------------我是分割线-------------

“Python小屋”公众号近期主要活动:

1、Python师资培训班:8月6日-12日,济南,面向全国高校老师和企业朋友,通知详见关于举办2017年暑期全国高校教师 “Python编程及应用”培训班通知,赠送Python教材2本、Python教学PPT超过1600页,Python教学视频140集,Python教学案例300个,以及教学大纲、教案、考试题库等全套资源。补充说明:如果不需要安排住宿的话,5天学费2100元(含午餐)。