JUC第一讲-多线程相关概念

81 阅读1分钟

Java多线程相关概念

一把锁

两个并

并发:(秒杀抢购,同一时刻同时处理多个请求)

  1. 在同一个实体上的多个事件
  2. 是在一台处理器上”同时“处理多个任务
  3. 同一时刻,其实只有一个事件在发生

并行:

  1. 是在不同实体上的多个事件
  2. 在多台处理器上同时处理多个任务

图片.png

三个程

  1. 进程:就是系统中运行的任何一个应用程序

  2. 线程:也被称为轻量级进程,在同一个进程里面会有多个线程来完成进程的任务

  3. 管城:Moinitor(监视器)也就是我们说的锁

     	比如下面的o就是管程
    
Object o=new Object();
new Thread(()->{
 synchronized(o){

 }
})

用户线程和守护线程

一般情况下不做特别说明配置,默认都是用户线程 用户线程:是系统的工作线程,他会完成这个程序需要完成的业务操作 守护线程:一个服务线程,如果用户线程结束,守护线程也就结束了 isDaemon() 判断一个线程是否是守护线程

public class DamonDemo {
   public static void main(String[] args) {
      Thread ti=new Thread(()->{
         System.out.println(Thread.currentThread().getName()+"开始运行"+
                 (Thread.currentThread().isDaemon()?"守护线程":"用户线程"));
         while (true){

         }
      });
      //设置守护线程必须在start前面
      ti.setDaemon(true);
      ti.start();
      System.out.println(Thread.currentThread().getName()+"开始运行"+
              (Thread.currentThread().isDaemon()?"守护线程":"用户线程"));
      //用户线程结束,守护线程也会伴随着结束
   }
}