多线程是一种同时执行多个线程的技术,它不允许进程或操作系统生成计算机中运行的程序的多个副本,而是在不创建程序多个副本的情况下,同时管理多个用户或同一用户的多个请求。
线程是轻量级进程,是处理的最小单元,同时运行多个线程称为多线程。因此,基本上,这是一种由多个处理器使用单个代码集的方法。
了解多线程
为了理解多线程,需要理解两个术语。
线程:线程是进程的独立或基本单元。
进程:正在执行的程序称为进程,一个进程中存在多个线程。
多线程中的执行是并发的和并行的。
并发执行:如果处理器可以在单个处理器上的多线程进程中的线程之间切换执行资源,则可以说它是并发执行。
并行执行:当进程中的每个线程可以在同一多线程进程中同时在单独的处理器上运行时,则被称为并行执行。
螺纹类型
用户级线程:它们由用户创建和管理,它们用于应用程序级别,操作系统不参与。一个很好的例子是当我们在Java,C#,Python等程序设计中使用线程时,我们使用用户线程。
每个线程中都包含一些独特的数据,有助于识别它们,例如:
程序计数器:程序计数器负责跟踪指令并告诉下一条指令要执行。
寄存器:系统寄存器用于跟踪线程的当前工作变量。
堆栈:它包含线程执行的历史记录。
内核级线程:它们由操作系统实现和支持,它们通常比用户线程花费更多的时间来执行,例如Window Solaris。
多线程模型
多线程模型分为三种类型
多对多:任意数量的用户线程都可以与相等或更少数量的内核线程进行交互。
多对一:它将许多用户级线程映射到一个内核级线程。
一对一:用户级线程和内核级线程之间的关系是一对一的。
多线程的使用
多线程是在系统或程序中引入并行性的一种方式,因此,您可以在看到并行路径的任何地方(两个线程都不依赖于彼此的结果)使用它,以使其变得快速,容易。
例如:
大数据的处理可以分为多个部分,并使用多个线程来完成。
涉及诸如验证和保存,产生和消费,读取和验证之类的机制的应用程序是在多个线程中完成的。这种应用程序的例子很少,例如网上银行,充值等。
它可用于制作不同元素在不同线程上运行的游戏。
在Android中,它用于访问在后台线程中运行的API,以防止应用程序停止运行。
在Web应用程序中,当您希望您的应用程序获得异步调用并异步执行时使用它。
多线程的优点
经济:因为它们共享相同的处理器资源,因此非常经济。创建线程所需的时间更少。
资源共享:它允许线程共享资源,例如数据,内存,文件等。因此,应用程序可以在同一地址空间内具有多个线程。
响应速度:它提高了对用户的响应速度,因为它允许程序继续运行,即使它的一部分正在执行冗长的操作或被阻塞。
可扩展性:它增加了多CPU机器上的并行性,它增强了多处理器计算机的性能,
这样可以更好地利用CPU资源。
为什么要使用多线程?
增加并行度
充分利用可用的CPU资源。
改善应用程序的响应能力并与用户进行更好的交互。
结论
在计算机世界中,当我们谈论并行性时,我们谈论的是多线程。实现多线程是相当有效和直接的,因为它使工作更便宜,它处理异步的特长使其独树一帜。因此,它是有需求的,并且是值得学习的技术。