zoukankan      html  css  js  c++  java
  • 多线程介绍与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()
    

      

  • 相关阅读:
    SQL分页语句
    读、写 节点 XML方法总结
    新手入门:XHTML DHTML SHTML的区别
    ROS映射非21端口的FTP服务器设置
    图解:asp.net三种重定向方法
    在ASP.NET中显示进度条
    C#读取文本文件
    Net3.5都快来了,.Net2.0你们都知道多少呢?
    div+css布局漫谈
    自定义的向客户端输出Javascript脚本alert函数
  • 原文地址:https://www.cnblogs.com/zyde-2893/p/11291784.html
Copyright © 2011-2022 走看看