线程是一个轻量级的过程,它是代码序列以及所有数据支持结构(例如,打开的资源,内存映射,堆栈等)的执行。如果要并行运行代码,将使编程变得容易。它受益于多CPU的体系结构,它还可以运行多个进程或在一个进程中运行多个线程。
线程的定义
在计算机语言中,它是线程实现的精确对象。对于程序而言,线程是一种在运行任务时同时将自己分成两个以上部分的方法。每个操作系统的进程与另一个操作系统的进程之间存在差异,尽管通常一个线程包含在一个进程中,并且它们的区别在于同一进程共享相同的资源,而同一多任务操作系统中的不同进程却无法做到这一点。
个人对线程的理解
它具有自主流程控制,该自主流程控制的功能与流程内其他自主流程控制的地址类似。按照惯例,将属性的流程和线程安排到称为流程的单个实体中。此外,在其他操作系统中,有时将线程称为轻进程,单词线程的本质有时会有所更改。
在传统的系统中,单线程过程由一组特征组成,而在多线程系统中,它们的特征在线程和进程之间分配。
线程如何使工作如此轻松?
通过多线程程序可以使工作变得更容易,线程编程的显着增强是并行编程技术易于执行,而多线程程序则具有出色的性能。虽然,线程具有很少的约束,并且不能用于一些仍然需要多处理程序的特定目标。
在并行编程概念中,利用并行编程而不是串行编程技术有两个主要好处。并行编程可以提高程序的性能,很少有流行的软件标准非常适合并行编程过程。
可以使用线程做什么?
按照这种常规方式,尽管很少有程序可以从超凡的并行度中受益,但是已经利用单线程的各种进程来实现并行度。多线程进程在进程内部提供并行性,该进程包括共享多个编程的多个单线程进程中包含的众多概念。
与利用多个进程的常规并行程序相比,在多线程程序内可以以多种方式提供增强的执行。此外,在应用线程的多处理器系统上可以获得更高的性能。
线程的好处
进程由多个线程组成,所有这些线程共享打开的资源,同一进程中的内存映射具有其堆栈。它具有比缺点更多的好处,因为对于一种使用该过程的用户,可以使它在相同的时间独立运行程序,而无需特别编写为可以相互操作。利用这些过程,可以为任务中的意外干扰提供更好的安全性,这些干扰可能是编程错误,也可能是恶意代码,因此,每个选项卡仅处理chrome而不使用线程。此外,当打开更多标签时,Chrome使用的内存比Firefox更多。您可以使用线程来节省内存,并且可以共享多个内容。
为什么线程在编程中很重要?
当线程通过共享变量并以适当的同步进行交互时,它使编程变得容易。很少有程序允许您选择线程或进程,例如,Apache Web服务器是开放源代码。默认情况下,Apache为每个客户端生成一个新的进程以专门为其服务。
虽然可以更改配置以替代使用线程,通过利用线程,可以使它快速运行,从而减少高负载情况下的内存使用,但是,这增加了出现安全问题的机会。例如,如果Apache中存在一个错误,则攻击者可能会找到它并可能访问所有其他信息。
为什么要使用线程?
它们是模块化编程的理想选择,因为它们提供了更容易的数据共享,因为进程内的所有线程共享相似的地址空间和强大的同步能力,例如条件变量和互斥量。程序通常是由众多不同的组件相互通信以创建理想的结果或服务而设计的,程序可以作为复杂实体或单个实体执行,可以在程序的不同部分之间执行多种用途。更简单的答案包括在每个实体执行程序的一部分时执行多个实体,并与其他实体共享资源。
结论
即使有其局限性,线程在多种编程语言中都有很大的用处,可以帮助执行多个进程。它主要用作子进程,以平滑与在同一进程中运行的所有其他线程共享相同地址空间和最大数据的进程。据每个用户可以理解,该程序似乎只为他运行。