更新时间:2021-10-09 10:34:45 来源:极悦 浏览987次
每个进程提供执行程序所需的资源。进程具有虚拟地址空间、可执行代码、系统对象的开放句柄、安全上下文、唯一进程标识符、环境变量、优先级类、最小和最大工作集大小以及至少一个执行线程。每个进程都以单个线程启动,通常称为主线程,但可以从其任何线程创建其他线程。
一个线程是可以调度执行过程中的实体。进程的所有线程共享其虚拟地址空间和系统资源。此外,每个线程都维护异常处理程序、调度优先级、线程本地存储、唯一的线程标识符以及系统将用来保存线程上下文直到被调度的一组结构。的线程上下文包括线程的一组的机器寄存器,内核栈,线程环境块,并在该线程的进程的地址空间中的用户栈。线程也可以有自己的安全上下文,可用于模拟客户端。
Microsoft Windows 支持抢占式多任务处理,这会产生来自多个进程的多个线程同时执行的效果。在多处理器计算机上,系统可以同时执行与计算机上的处理器一样多的线程。
甲作业对象允许的处理组作为一个单元来管理。作业对象是可命名的、可保护的、可共享的对象,它们控制与其关联的进程的属性。对作业对象执行的操作会影响与作业对象关联的所有进程。
应用程序可以使用线程池来减少应用程序线程的数量并提供对工作线程的管理。应用程序可以对工作项进行排队,将工作与可等待句柄相关联,根据计时器自动排队,并与 I/O 绑定。
用户模式调度(UMS) 是一种轻量级机制,应用程序可以使用它来调度自己的线程。应用程序可以在用户模式下在 UMS 线程之间切换,而无需系统调度程序,如果 UMS 线程在内核中阻塞,则可以重新获得对处理器的控制。每个 UMS 线程都有自己的线程上下文,而不是共享单个线程的线程上下文。在用户模式下在线程之间切换的能力使 UMS 比需要很少系统调用的短期工作项目的线程池更有效。
甲纤维是执行的单元,其必须由应用程序进行手动调度。Fiber 在调度它们的线程的上下文中运行。每个线程可以调度多个纤程。一般而言,与精心设计的多线程应用程序相比,纤程没有优势。但是,使用纤程可以更轻松地移植旨在调度自己线程的应用程序。
如果大家想了解更多相关知识,可以关注一下动力节的Java多线程编程教程,里面有更多的知识可以学习,希望对大家能够有所帮助。
0基础 0学费 15天面授
Java就业班有基础 直达就业
业余时间 高薪转行
Java在职加薪班工作1~3年,加薪神器
工作3~5年,晋升架构
提交申请后,顾问老师会电话与您沟通安排学习