-
线程(在台湾称为线程)是"过程"中的单阶控制流。 也称为轻量级进程。 一个计算机科学术语,指的是正在运行的程序的调度单元。
线程是进程中的一个实体,一个进程可以有多个线程,并且线程必须具有父进程。 线程不拥有系统资源,只有运行所需的一些数据结构; 它与父进程的其余部分共享父进程拥有的所有资源。 线程可以创建和撤消线程,从而实现程序的并发执行。
通常,线程有三种基本状态:就绪、阻塞和正在运行。
在多处理器系统中,不同的线程可以同时在不同的处理器上运行,即使它们属于同一进程。 大多数支持多个处理器的操作系统都提供编程接口,允许进程控制其线程与每个处理器的关联性。
有时,线程也称为轻量级进程。 与进程一样,线程是程序中独立的并发执行路径,每个线程都有自己的堆栈、自己的程序计数器和自己的局部变量。 但是,与分隔进程相比,进程中线程之间的隔离程度要小。
它们共享内存、文件句柄和每个进程应具有的其他状态。
一个进程可以支持多个线程,这些线程看似同时执行,但彼此不同步。 进程中的多个线程共享相同的内存地址空间,这意味着它们可以访问相同的变量和对象,并且它们从同一堆中分配对象。 虽然这样可以更轻松地在线程之间共享信息,但您必须小心确保它们不会妨碍同一进程中的其他线程。
-
线程是可用于计划操作的基本操作单元。 它包含在流程中,是流程的实际操作单元。 线程是指进程中的单阶控制流,其中多个线程可以并发,每个线程并行执行不同的任务。
与进程类似,线程具有三种基本转换状态:就绪、正在运行和阻塞。
线程是处理器的独立调度单元,多个线程可以并发执行。 每个线程都应具有唯一的标识符和线程控制块。 线程控制块记录线程执行的寄存器和堆栈的现场状态。
时间片。 时间片是分时操作系统分配给每个正在运行的进程的 CPU 时间段,时间片的大小对系统的性能影响很大。
如果时间片足够大,所有进程都可以在单个时间片中执行,则时间片轮换调度算法将退化为先到先得调度。 如果时间片较小,处理器将在进程之间切换过于频繁,从而增加处理器的开销并减少实际处理用户作业的时间,因此时间片的大小应该是合适的。
线程安全。 线程不持有资源,但同一个进程中的所有线程都可以共享进程的资源,所以我们遇到的大多数线程问题基本上都是由共享资源引起的。
换句话说,当多个线程同时访问一个共享资源(某个内存段)时,由于时序问题,数据会被打乱,这就是线程不安全。
同步、异步。
同步:进行同步调用时,在获取结果之前不会返回该调用。
异步:进行异步调用后,调用方不会立即获得结果,而是返回调用。
并发、并行。
并发是指在同一时间段内在同一 CPU 上运行多个作业,但在任何给定时间点只有一个作业在处理器上运行。
并行性意味着多个作业在同一时间段内在多个 CPU 上运行,并且多个作业在任何时间点同时运行,并且多个作业不会相互干扰。
-
简单地说,它是一个过程的一个分支。
-
线程是 CPU 独立运行和调度的基本单元。
-
在单CPU系统中,系统只能让一个线程在某个时间运行,虽然这种调试机制有很多种形式(大部分都是以时间片为主),但无论如何,不断切换需要运行的线程的方式叫做并发。 在多CPU系统中,两个或多个线程可以同时运行,这称为并行。 我已经为此苦苦挣扎了一段时间,无论如何我都必须向你说清楚:
在某个时间点,一个CPU(单)只会在某个进程中运行一个线程,所以我们常称之为并发,说到同步机制,其实多线程并没有真正实现微观意义上的同步,进程是一个运行单元,线程是一个较小的运行单元,总之, 将进程细分为多个线程,例如:一个进程 A 需要 1s 才能运行,它会切换到进程 B,但是在实现多线程机制后,进程 A 被细化为 10 个线程,每个线程只需要运行,当然 B 线程是一样的,这导致线程之间的切换时间更短, 以及从宏观角度看的同步错觉。所以要学习多线程,你必须真正理解所谓的同步并发并不是真正的“同步”。
当你理解了这一点,你就会对何时使用多线程机制有一个大致的了解,事实上,你计算机中的每个程序都至少有一个主线程,而那个管理器中的每个进程实际上都包含几个线程,并且在每个时间点,某个程序进程中的某个线程正在运行。
-
让我们从这些概念开始: 答1程序:指令和数据的字节序列; a2.进程:正在运行的程序(例如QQ); a3.进程中可能有一个或多个线程。
线程的概念:线程 系统上运行的每个程序都是一个进程。 每个进程都包含一个或多个线程。 流程也可以是整个程序或程序部分的动态执行。
线程是指令的集合,或程序的特殊段,可以在程序中独立执行。 它也可以理解为它运行的上下文。
因此,线程基本上是轻量级进程,负责在单个程序中进行多任务处理。 通常,操作系统负责调度和执行多个线程。
多线程的概念:多线程是同步完成多个任务,不是为了提高运营效率,而是为了提高资源利用效率,提高系统的效率。
当需要同时完成多个任务时,会实现线程。
多线程的优点:线程可用于将程序中占用较长时间的任务放在后台处理。
用户界面可以更具吸引力,例如当用户单击按钮触发某些事件的处理时,可以弹出进度条以显示处理进度
程序可能运行得更快 • 线程对于实现等待任务(例如用户输入、文件读写以及通过网络发送和接收数据)更有用。
在这种情况下,我们可以释放一些宝贵的资源,例如内存占用等。
当多个线程访问独占共享资源时,可以使用 Critical Zone 对象。 任何时候只能有一个线程有一个临界区域对象,具有临界区域的线程可以访问受保护的资源或段,其他想要进入临界区域的线程将被暂停并等待,直到具有临界区域的线程放弃临界区域,从而保证没有多个线程同时访问共享资源。 >>>More
创建远程线程的方法进入目标进程的内存地址空间。 木马以DLL的形式实现后,需要使用插入到目标进程中的远程线程将木马DLL插入到目标进程的地址空间中,即通过调用Windows API loadlibrary函数,利用该线程加载木马DLL,从而实现木马对系统的侵犯。 >>>More
超线程技术是通过同时执行多个程序来共享一个CPU中的资源,理论上像两个CPU一样同时执行两个线程。 超线程是英特尔开发并于 2002 年发布的一项技术。 超线程的英文是HT technology,全称是超线程,中文也叫超线程。 >>>More