Java中的多线程
java中的多线程是同时执行多个线程的过程。
线程基本上是一个轻量级的子进程,是一个最小的处理单元。多处理和多线程都用于实现多任务。
但是我们使用多线程而不是多进程,因为线程共享一个共同的内存区域。它们不分配单独的内存区域,因此节省内存,并且线程之间的上下文切换比进程花费更少的时间。
Java多线程主要用于游戏,动画等。
Java多线程的优点
1)它不会阻止用户,因为线程是独立的,您可以同时执行多个操作。
2)您可以一起执行许多操作,从而节省时间。
3)线程是独立的,因此如果在单个线程中发生异常,它不会影响其他线程。
多任务处理
多任务是同时执行多个任务的过程。我们使用多任务来利用CPU。可以通过两种方式实现多任务:
- 基于过程的多任务(多处理)
- 基于线程的多任务(多线程)
1)基于过程的多任务处理(多处理)
- 每个进程都有自己的内存地址,即每个进程分配单独的内存区域。
- 过程是重量级的。
- 流程成本高。
- 从一个进程切换到另一个进程需要一些时间来保存和加载寄存器,内存映射,更新列表等。
2)基于线程的多任务(多线程)
- 线程共享相同的地址空间。
- 线程重量轻
- 线程之间的通信成本低。
注意:每个线程至少需要一个进程。
什么是Java中的线程
线程是一个轻量级的子进程,是一个最小的处理单元。它是一个单独的执行路径。
线程是独立的,如果在一个线程中发生异常,它不影响其他线程。它共享一个共同的记忆区域。
如上图所示,线程在进程内执行。线程之间有上下文切换。OS内可以有多个进程,一个进程可以有多个线程。