多线程

作者:管理员 发布时间:2021-01-11 11:44

什么是进程?  

一般情况下,我们开发一个软件,运行起来后,在操作系统的任务管理器的进程列表中会显示1个对应的名称,

当然,如果我们的程序允许的话,可以被同时启动多次,形成多个进程。

所以,我们可以理解为,1个进程就是一个程序启动后,所占据的资源与状态;


什么是线程?

    在一个进程中,可以启动多个子线程,线程与进程类似,用于我们的程序分配分支任务,并且独立运行,但不同的是,他在任务管理器的进程列表中不显示,随着主进程的关闭,所有线程都会关闭;

线程有什么用?

    用于同时处理多个任务时,可以使用线程;

如果不使用多线程,

你写的程序,就会一行一行的执行,当一行还没执行完时,不会进行下一行的操作。当如果你需要处理完的人物非常复杂时,可能需要几秒,或几分钟才能执行完成,意味着,这段时间里,你的程序状态为“失去响应”状态,俗话称“卡死了”。

还有一个重要问题,现在的电脑或服务器都由非常多的CPU组成,,如果你没有使用多线程,你最多只能调度一个CPU的计算能力,就会出现1台4核CPU的服务器,运行程序CPU占25%,但程序确卡死了的尴尬局面。

综上所述,多线程是除了网页端应用外(最新的H5也开始支持多线程了),大部分软件开发者需要掌握的技能。


多线程的使用

在不使用多线程的情况下,启动程序后,系统就自动启动了1个主线程,这个线程一般会用于和客户进行交互;

所有需要干活,或干活时间比较长的任务,我们都放到新建建的子线程当中。

这么做,就意味着,使用者永远都会得到第一时间的响应,不会卡主。

实现也非常简单,如下:

import threading
import time

def run(n):
    print("task", n)
    time.sleep(1)
    print('2s')
    time.sleep(1)
    print('1s')
    time.sleep(1)
    print('0s')
    time.sleep(1)

if __name__ == '__main__':
    t1 = threading.Thread(target=run, args=("t1",))
    t2 = threading.Thread(target=run, args=("t2",))
    t1.start()
    t2.start()

我们只需要声明1个函数,新建一个线程,让这个线程运行这个函数,就可以了。



标签:
更多介绍:
线程等待与守护
多线程数据共享
多线程队列
Copyright © 2020 万物律动 旗下 AI算法狮 京ICP备20010037号-1
本站内容来源于网络开放内容的收集整理,并且仅供学习交流使用;
如有侵权,请联系删除相关内容;