自学Java第三十八课

多线程

  1、实现多线程

    1.1、进程:正在运行的程序。进程是系统进行资源分配和调用的独立单位,每一个进程都有它自己的内存空间和系统资源。

    1.2、线程:进程中的单个顺序控制流,是一条执行路径。 单线程:只有一条执行路径。   多线程:具有多条执行路径。例如记事本是一个单线程,游戏一般都是多线程。

    1.3、多线程的实现方式

      继承Thread类:定义一个类继承Thread类->在定义的类中重写run()方法->创建类的对象->启动线程(start())。

      问题:重写run()方法? run()用来封装被线程执行的代码。

        run()和start()的区别?run():封装线程执行的代码,直接调用,相当于普通方法调用;start():启动线程,由JVM调用此线程run()方法。

    1.4设置和获取线程名称

      Thread类中设置和获取线程名称的方法:

        void setName(String name):将线程名称更改为等于参数name

        String getName():返回线程名称

      

1 public class MyThread extends Thread {
2     @Override
3     public void run() {
4         for(int i=0;i<100;i++){
5             System.out.println(i);
6         }
7     }
8 }

 

      获取线程名称:public static Thread currentThread():返回对当前正在执行线程对象引用。

    1.5、线程调度

      ①分时调度模型:线程轮流使用CPU使用权,平均分配每个线程占用CPU时间片

      ②抢占式调度模型:让优先级高的使用CPU,优先级相同时,随机选择一个,优先级高的线程获取CPU时间片相对多一些。Java就是抢占式调度模型

      注:多线程程序执行具有随机性

      Thread类中设置和获取线程优先级方法

        public final int getPriority():返回此线程的优先级

        public final void setPriority(int newPriority):更改优先级

      线程默认优先级:5;优先级的范围:1~10.

明天将会继续学习线程周期、控制及其案例。

posted on 2021-08-12 21:11  跨越&尘世  阅读(16)  评论(0编辑  收藏  举报