彻底掌握java多线程(知识点汇总+代码+面试题) 更新中……

基础知识

多线程初识

进程与线程

操作系统、进程、线程之间的关系:
彻底掌握java多线程(知识点汇总+代码+面试题) 更新中……
    一个操作系统(operating system)包含多个进程,一个进程(process)包含一个或多个线程(thread)。

进程的概念: 进程是程序运行的实例,是资源分配的基本单元。
    当程序运行时操作系统就会给当前程序分配内存、cpu等资源。(一个程序执行时会产生一个或多个进程)。

线程的概念:线程是cpu的基本调度单位,每个线程执行的都是进程代码的某个片段。

线程间共享的资源:进程代码段】、【进程的公有数据‘利用这些数共享数据】、【线程很容易实现线程间的通讯】、【进程打开的文件描述符】、【信号的处理器】、【进程的当前目录】、【进程用户ID与进程组ID】。

线程间私有的资源: 【线程ID】、【寄存器组的值】、【线程的堆栈】、【错误返回码】、【线程的信号屏蔽码】

多线程、高并发

串行、并行、并发

高并发

同步异步、阻塞非阻塞

面试题

进程与线程的区别:

  1. 起源不同: 先有进程后有线程,为了提高cpu的利用率诞生了线程。线程为了提高程序的运行效率。
  2. 概念不同: 进程是程序运行的实例,系统分配资源,调度的单位。线程是cpu调度的单位。
  3. 内存共享方式上不同: 系统会为进程分配内存空间,不同进程之间的通常(IPC可实现进程间通信)是内存不共享的,线程可以一定量的直接访问共享内存。
  4. 拥有的资源不同: 进程拥有的资源大于线程。
  5. 数量不同: 一个进程至少拥有一个线程。
  6. 开销不同: ①线程的创建、终止时间比进程短。②同一进程内的线程切换时间比进程短。 ③ 同一进程的各个线程间共享内存和资源文件,可以不通过内核进行通信。
  7. 相同点: 生命周期:都有 就绪、等待、运行。