从零开始挑战高并发编程(1)基础

本章内容大多为“操作系统原理”课程中的重要概念。

基本概念

进程:进行中的程序,资源分配的最小单位。进程之间相互独立,每个进程都拥有自己独立的地址空间。

线程:独立调度的基本单位。一个进程包含多个线程,多个线程共享进程资源。

并发:多个线程同时执行

并发编程目的:提高程序运行效率

线程分类

(1)用户线程、守护线程

用户线程:用户自己创建的线程,主线程停止不会影响用户线程的运行。

守护线程:所有非守护线程全部终止时,守护线程会自动终止运行。

(2)主线程、子线程、GC线程

主线程:程序执行入口处创建的线程,可创建更多的其他线程。

GC线程:JVM垃圾回收线程,属于守护线程。

创建线程方式

  • 继承Thread类
  • 实现Runnable接口
  • 匿名内部类
  • 用线程池创建

同步:多段代码顺序执行

异步:多段代码同时执行

注意,启动线程是调用start方法,不是run方法!

线程状态

线程共有五种状态:

创建(new Thread)=> 就绪(执行start方法,等待CPU分配时间片)=> 运行 (CPU分配给该线程时间片,执行run方法)=> 阻塞(执行wait方法使该线程暂停执行)=> 终止(该线程执行完毕)

CPU会不断分配时间片给不同线程并切换线程执行,当一个线程执行完当前时间片,会进入就绪状态(放入就绪队列末尾)等待下一次的时间片分配。

thread.join()

Java中thread.join方法可以让该线程插队并抢占CPU,所有其他线程(包括主线程)都必须等待该线程执行完毕后才能继续执行。

发表评论

电子邮件地址不会被公开。