Java多线程和多进程的优缺点

Java多线程和多进程的对比

    • 1、多进程
      • (1)多进程的优点
      • (2)多进程的缺点
    • 2、多线程
      • (1)多线程的优点
      • (2)多线程的缺点

1、多进程

当前的操作系统都是多任务OS。每个独立执行的任务就是一个进程。
操作系统OS将时间划分为多个时间片(时间很短),每个时间片内将CPU分配给某一个任务,时间片结束,CPU将自动回收,再分配给另外任务。从外部看,所有任务是同时在执行。但是在CPU上,任务是按照串行依次运行(单核CPU)。如果是多核,多个进程任务可以并行。但是单个核上,多进程只能串行执行。

  • 串行程序,是指程序只能在单核上运行,无法利用多个CPU;
  • 并行程序,是指程序可以利用多个计算核运行,加快计算速度。

(1)多进程的优点

  • 可以同时运行多个任务
  • 程序因IO堵塞时,可以释放CPU,让CPU为其他程序服务,则CPU的利用率提高
  • 当系统有多个CPU时(不方便散热),可以为多个程序同时服务

(2)多进程的缺点

  • 太笨重,不好管理
  • 太笨重,不好切换

2、多线程

一个程序可以包括多个子任务,可串/并行,每个子任务可以称为一个线程。
如果一个子任务阻塞,程序可以将CPU调度另外一个子任务进行工作。这样CPU还是保留在本程序中,而不是被调度到别的程序(进程)去。这样,提高本程序所获得CPU时间和利用率。

(1)多线程的优点

  • 多线程共享数据
  • 多线程通讯更高效
  • 线程更轻量级,更容易切换
  • 多个线程更容易管理

(2)多线程的缺点

  • 线程之间的同步和加锁控制比较麻烦
  • 一个线程的崩溃可能影响到整个程序的稳定性

下一篇:Java多线程的两种创建方式

你可能感兴趣的:(#,Java多线程,java,多线程)