线程学习day1(线程概念,创建线程,线程方法)

59 阅读2分钟
  1. 多线程总览

    1. 线程的概念
    2. 如何创建线程
    3. 线程的方法和特点
    4. 处理线程安全问题
    5. 其他
    6. 另外两种创建线程的方式
  2. 程序的概念

    1. 程序,进程,线程
      • 程序:一段静态的代码

      • 进程:①执行中的程序.
        电脑分配资源的基本单位.
        ③程序是静态的,进程是动态的.

      • 线程:进程进一步细化为线程,程序中的一条执行路径,CPU分配资源的最小单位.

      • JVM底层:每有一个进程就有一个JVM实例,JVM里可以有多个栈(多线程,每个线程独立拥有一个栈),而只有一个堆和方法区.

    2. 线程调度
      • 分时调度:每个线程轮流使用cpu
      • 抢占式调度:让优先级高的线程以大概率使用cpu,反之亦然;优先级相同,则随机.
    3. 理解
      • 关系图1 qq_pic_merged_1745075438211.jpg
      • 关系图2 qq_pic_merged_1745075310658.jpg 程序执行就是进程,进程中有多个线程.
  3. 创建线程的方式

    1. 继承Thread类 方法:①创建一个Thread类的子类.
      ②重写Thread类的run()方法,将要执行的操作写在方法体中.
      ③创建当前Thread子类的对象.
      ④通过对象调用start()方法.
      start()方法功能:①启动线程.
      ②执行run()方法.
    2. 实现Runnable接口 方法:①创建实现Runnable接口的类
      ②实现接口的run()方法
      ③创建实现类的对象
      ④将此对象作为参数传到Thread类构造器中.
      ⑤Thread类的实例调用start()方法.
  4. 线程的方法

    1. 线程的构造器

      构造器名说明
      public Thread()创建一个线程对象
      public Thread(String name)创建一个指定名称的线程
      public Thread(Runnable target)分配一个指定目标的线程对象
      public Thread(Runnable target,String name)分配一个指定名称指定对象的线程对象
    2. 线程的常用方法

      方法名说明
      start()①启动线程②调用run()方法
      run()将线程要执行的操作,声明在run()方法中
      currentThread()静态方法,返回当前执行代码所在线程
      getName()获得线程名
      setName(String name)设置线程名
      sleep(int num)静态方法,线程休息num毫秒