美文网首页
java 多线程

java 多线程

作者: 媛猿YY | 来源:发表于2021-05-25 09:54 被阅读0次

    进程

    • 进程是指可执行程序并存放在计算机存储器的一个指令序列,它是一个动态执行的过程

    线程

    • 线程是比进程还要小的运行单位,一个线程包含多个进程

    线程的创建

    • 创建一个Thread类,或者一个Thread子类的对象
    • 创建一个实现Runnable接口的类的对象
    Thread类
    • Thread是一个线程类,位于Java.lang下面


      image.png
    • Thread常用方法


      image.png
    Runnable接口
    • 只有一个run()方法
    • Runnable是Java中用以实现线程的接口
    • 任何实现线程功能的类都必须实现该接口
    线程创建

    通过继承Thread类的方式创建线程类,重写run()方法

    线程的状态和生命周期

    • 新建(New)
    • 可运行(Runnable)
    • 正在运行(Running)
    • 阻塞(Blocked)
    • 终止(Dead)
    image.png
    • sleep() 休眠
    • join() ,抢占资源,join()方法执行完以后再执行其它的线程
    package com.example.javabase.xiancheng.join;
    
    class Mythread extends Thread {
        public void run() {
            for (int i = 1; i <= 20; i++) {
                System.out.println(getName() + "正在执行" + i + "次!");
            }
        }
    
    }
    
    public class JoinDemo {
        public static void main(String[] args) {
            Mythread mt = new Mythread();
            mt.start();
            try {
                mt.join();
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            for (int i = 0; i <= 20; i++) {
                System.out.println("主线程运行第" + i + "次!");
            }
            System.out.println("主线程运行结束!");
        }
    }
    
    

    线程优先级

    • Java为线程类提供了10个优先级
    • 优先级可以用证书1-10表示,超过范围会抛出异常
      -主线程默认优先级5


      image.png
    1. 优先级常量
    • MAX_PRIORITY:线程的最高优先级10
    • MIN_PRIORITY:线程的最低优先级1
    • NORM_PRIORITY:线程的默认优先级5
    1. 优先级相关方法


      image.png

    多线程运行的问题

    • 各个线程是通过竞争CPU时间而获得运行机会的
    • 各线程什么时候得到CPU时间,占用多久,是不可预测的
    • 一个正在运行着的线程在什么地方被暂停是不确定的

    相关文章

      网友评论

          本文标题:java 多线程

          本文链接:https://www.haomeiwen.com/subject/gtvcrltx.html