Java 中的多线程场景

2024 年 9 月 10 日 | 阅读 3 分钟

多线程场景

每个 Java 线程都有一个优先级,用于帮助操作系统确定其调度顺序。Java 线程的优先级介于 MAX PRIORITY 和 MIN PRIORITY(常量值为 10)之间。默认情况下,每个线程的优先级为 NORM PRIORITY(常量值为 5)。

程序应为优先级更高的线程分配比优先级较低的线程更多的处理时间,因为它们更重要。线程的执行顺序不能通过线程优先级来保证,这在很大程度上取决于平台。

多线程是指多个线程的同时执行。Java 将并发运行多个线程的过程称为多线程。当一个程序有多个控制流时,该程序被称为多线程。

Java 将每个程序的子程序称为线程。借助多线程,我们可以同时运行多个线程。例如,在 Web 浏览器中,我们可以有一个管理用户界面的线程,以及另一个在后台运行以检索将显示的数据的线程。因此,多线程可以提高系统的响应能力。

在进程内运行多个任务。它有两种类型:内核级线程和用户级线程。它允许资源共享,并且经济、响应迅速、可扩展且高效。多线程使用多对多模型、多对一模型和一对一模型。

当一个程序有多个线程时,CPU 可以在它们之间切换以同时执行它们。上下文切换是指在两个线程之间切换的过程。

由于一个线程切换到另一个线程的速度非常快,用户可能会认为所有线程都在并发运行。但事实上,执行数据的时间只涉及一个线程。

需要同时完成多个任务的应用程序可以从该技术中受益。时间共享是指在单个处理器系统上多个线程共享 CPU 时间的做法。

资源分配和调度由操作系统处理。多线程最大限度地利用 CPU,同时最大限度地减少 CPU 空闲时间,从而提高 CPU 性能。

多线程程序中的每个线程都被分配一个单独的任务来完成,并独立运行。在执行过程中,如果一个线程发生异常,它不会影响其他线程。

例如,让一个线程读取数据,另一个线程处理数据,第三个线程写入数据,可以提高应用程序的整体性能。

多线程程序可以同时下载网络文件、播放音乐和显示动画。

使用多线程编程概念的一些优点如下:

  • 在多线程应用程序中,不同的线程执行应用程序的不同部分。
  • 即使一个线程发生异常,整个应用程序仍然在运行。
  • 在应用程序执行期间,它不会影响其他线程。
  • 分配到不同处理器后,每个线程在不同处理器上并行执行。
  • 多线程的使用缩短了计算时间。
  • 多线程提高了应用程序的性能。
  • 线程使用的内存地址空间是相同的。因此,它节省了内存。
  • 多线程程序最大限度地利用 CPU,同时最大限度地减少 CPU 空闲时间。
  • 进程之间的上下文切换比线程之间的上下文切换成本更高。

让我们来看几个 Java 基于线程的多线程实时示例,如下所示:

1. 浏览器在下载页面其余部分的同时开始渲染网页,这是另一个广为人知的例子。

基于进程的多任务处理或基于程序的 ist 多任务处理是指同时运行多个程序或进程的做法。在基于进程的多任务处理中,微处理器并发运行多个程序。

因此,在 Java 中,它也称为多处理。它非常重要。称为基于进程的多任务处理的功能使计算机能够同时运行两个或多个程序。

同时使用文字处理器运行电子表格程序是一个很好的例子。在内存中,每个程序(进程)都有一个唯一的地址空间。换句话说,每个程序都被分配了独立的内存空间。

操作系统需要一些 CPU 时间才能从一个程序切换到另一个程序。上下文切换是指在运行的程序之间切换 CPU 的过程。