我们都知道,代码编程不是固定的东西,而是非常灵活的内容,根据不同的内容,我们可以拓展出很多条内容,最终目的还是为了可以实现结果,给大家举例说明其中一个最常用的多线程吧~以及实现的几种方式。

1. 用函数创建多线程

在Python3中,Python提供了一个内置模块 threading.Thread,可以很方便地让我们创建多线程。

举个例子import time

from threading import Thread

# 自定义线程函数。

def target(name="Python"):

for i in range(2):

print("hello", name)

time.sleep(1)

# 创建线程01,不指定参数

thread_01 = Thread(target=target)

# 启动线程01

thread_01.start()

# 创建线程02,指定参数,注意逗号

thread_02 = Thread(target=target, args=("MING",))

# 启动线程02

thread_02.start()

可以看到输出hello Python

hello MING

hello Python

hello MING

2.用类创建多线程

相比较函数而言,使用类创建线程,会比较麻烦一点。

首先,我们要自定义一个类,对于这个类有两点要求,

l必须继承 threading.Thread 这个父类;

l必须复写 run 方法。

来看一下例子为了方便对比,run函数我复用上面的main。import time

from threading import Thread

class MyThread(Thread):

def __init__(self, type="Python"):

# 注意:super().__init__() 必须写

# 且最好写在第一行

super().__init__()

self.type=type

def run(self):

for i in range(2):

print("hello", self.type)

time.sleep(1)

if __name__ == '__main__':

# 创建线程01,不指定参数

thread_01 = MyT

hread()

# 创建线程02,指定参数

thread_02 = MyThread("MING")

thread_01.start()

thread_02.start()

当然结果也是一样的。hello Python

hello MING

hello Python

hello MING

3.线程对象的方法

上面介绍了当前 Python 中创建线程两种主要方法。# 如上所述,创建一个线程

t=Thread(target=func)

# 启动子线程

t.start()

# 阻塞子线程,待子线程结束后,再往下执行

t.join()

# 判断线程是否在执行状态,在执行返回True,否则返回False

t.is_alive()

t.isAlive()

# 设置线程是否随主线程退出而退出,默认为False

t.daemon = True

t.daemon = False

# 设置线程名

t.name = "My-Thread"

至此,Python线程基础知识,我们大概都介绍完了。感兴趣的小伙伴可以多浏览看下内容哦~如果还想知道更多的python知识,可以到python学习网进行查询。

python多线程实现方式_python中实现多线程有几种方式?相关推荐

  1. python导入图片数据_Python中读取图片的6种方式

    Python进行图片处理,第一步就是读取图片,这里给大家整理了6种图片的读取方式,并将读取的图片装换成numpy.ndarray()格式.首先需要准备一张照片,假如你有女朋友的话,可以用女朋友的,没有 ...

  2. python字符串字面量有哪四种定义方式_python中字符串连接的四种方式

    原博文 2018-12-05 14:28 − 以下实例展示了join()的使用方法 #!/usr/bin/python str = "-"; seq = ("a" ...

  3. python中函数参数传递的三种方式_python中函数参数传递的几种方法

    转自  http://www.douban.com/note/13413855/ Python中函数参数的传递是通过"赋值"来传递的.但这条规则只回答了函数参数传递的"战 ...

  4. python 调用js类_Python 调用 JS 常用的4种方式,带你学会如何解密

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于AirPython ,作者星安果 1. 前言 日常 Web 端爬虫过 ...

  5. python网页结构分析图_Python爬虫解析网页的4种方式 值得收藏

    用Python写爬虫工具在现在是一种司空见惯的事情,每个人都希望能够写一段程序去互联网上扒一点资料下来,用于数据分析或者干点别的事情. 我们知道,爬虫的原理无非是把目标网址的内容下载下来存储到内存中, ...

  6. python多线程控制暂停_python中的多线程编程与暂停、播放音频的结合

    我们都知道python中可以是threading模块实现多线程, 但是模块并没有提供暂停, 恢复和停止线程的方法, 一旦线程对象调用start方法后, 只能等到对应的方法函数运行完毕. 也就是说一旦s ...

  7. python线程卡死问题解决_Python中的多线程:最后一个线程卡住了

    我遇到了一个奇怪的情况,在经历了很多次试射后我还是搞不清楚.我使用多线程(10)来读取url(100),它在大多数情况下都能正常工作,但在某些情况下,它会在最后一个线程上卡住.我等待它看它是否返回,花 ...

  8. python中readlines是什么意思_Python中read,readline,readlines三种方式的区别

    在用python读取文件的时经常用到三read.readline.readlines三种方法,它们功能实质区别如下: read       读取整个文件 readline    读取下一行 readl ...

  9. python 执行shell 事务_python中执行shell的两种方法总结

    一.使用python内置commands模块执行shell commands对Python的os.popen()进行了封装,使用SHELL命令字符串作为其参数,返回命令的结果数据以及命令执行的状态: ...

最新文章

  1. flash TweenMax用法
  2. c语言骑士游历优化算法,骑士游历、骑士巡游(C语言)课程设计.doc
  3. notes from《classification and regression trees》
  4. 计算机图形学二维图形基本变换实验原理,计算机图形学实验:二维图形变换.docx...
  5. rpc之使用httpserver实现tpc
  6. Python unittest –单元测试示例
  7. Mac天真答疑「6」mac系统使用技巧入门
  8. java添加多个按钮_java-向JFrame添加多个按钮,文本颜色不显示
  9. html5制作新年祝福,新年祝福视频制作教程
  10. 塑料制品生产的工艺流程
  11. 模块化编程的六大原则
  12. NIVIDIA 硬解码学习2
  13. keil5黑色主题配色方案
  14. mysql join 性能测试_Mysql Join语法解析与性能分析
  15. 香港银行开户失败的原因及应对方法 香港银行开户要求愈发严资者如果想在香港银行开户,需对香港银行开户政透彻的了解,这样才能确保开户的成功率。
  16. 学习juca:Striped64(1.8)
  17. 【渝粤教育】电大中专电子商务网站建设与维护 (2)_1作业 题库
  18. 基于AI的自动化处理
  19. windows无法格式化u盘_u盘无法格式化怎么办 DOS下u盘格式化方法【详解】
  20. ratingbar 的使用

热门文章

  1. 逆水寒7月19服务器维护,逆水寒7月19日更新维护公告 更新内容汇总
  2. cmdline常用参数
  3. 怎么卸载apowerrec_如何删除windows10自带应用
  4. 【Python】模块学习之ConfigParser读写配置信息
  5. Arch Linux下打不开gnome-shell
  6. Python调用C的方法
  7. 如果程序跑着跑着就崩溃了,查看内存
  8. windows phone 7 中文天气预报应用--来源http://www.cnblogs.com/liulunet/archive/2011/08/17/2141696.html...
  9. MySQL索引的一些问题
  10. 博主日常工作中使用的shell脚本分享