高并发与多线程(一)多线程基础

一、多线程的优势

  1. 资源利用率更好
  2. 程序设计在某种情况下更简单
  3. 程序响应速度更快

二、多线程的劣势

  1. 设计更复杂
  2. 增加上下文切换开销
    • 上下文切换当CPU执行一个线程切换到另一个线程的时候,需要保存当前线程的本地数据,程序指针等,
      然后载入另一个线程的本地数据以及程序指针等,最后才开始执行
  3. 增加资源消耗

三、竞态条件与临界区

当多个线程竞争同一个资源时候,对资源访问顺序敏感,就存在竞态条件。导致竞态发生的区域叫临界区

  • 线程的执行是随机的

四、线程的创建

Java 的线程创建有两种方法

  • 继承 Thread 类创建线程对象
  • 实现 Runnable 接口类创建线程对象

注意:
在java中,每次程序运行至少启动2个线程。一个是main线程,一个是垃圾收集线程。因为每当使用java命令执行一个类的时候,实际上都会启动一个jvm,
每一个jvm实际上就是在操作系统中启动了一个进程。

五、线程的状态和优先级

状态

  • new(新建)
  • runnnable(可运行)
  • blocked(阻塞)
  • waiting(等待)
  • time waiting (定时等待)
  • terminated(终止)

猜你喜欢

转载自blog.csdn.net/CrazyQiQi/article/details/127074702