美文网首页
java15(多线程--01 thread类)

java15(多线程--01 thread类)

作者: 机智的老刘明同志 | 来源:发表于2019-01-11 23:21 被阅读17次

进程:

        进程是一个正在执行中的程序,每一个进程都有一个执行顺序。该顺序是一个执行路径,或者叫一个控制单元  

线程:

        就是进程中的一个独立的控制单元。线程控制着进程的执行,另外一个进程中至少有一个线程

主线程:

        java虚拟机启动的时候会有一个进程java.exe。该进程中至少一个线程负责java程序的执行。而且这个线程运行的代码存在与main方法中


创建多线程:

 1.继承thread类  

        ①定义类继承Thread

        ②复写Thread类中的run方法

        ③调用线程的start方法(该方法有两个作用:启动线程,调用run方法)                                

        我们多次执行上面的代码发现每一次的运行结果都不相同。这是因为多个线程都会获取cpu的执行权。cpu执行到谁, 谁就运行。在某一时刻,只能有一个程序运行(多核除外)。cpu在做快速的切换,以达到看上去是同时运行的效果。我们可以形象的把多线程的运行看做 是相互抢夺cpu的执行权

        这就是多线程的一个特性:随机性

        至于上图为什么要覆盖run方法呢?

        thread类用于描述进程,该类就定义了一个功能,用于存储线程要运行的代码。该存储功能就是run方法。也就是说thread类中的run方法,用于存储线程要运行的代码


线程的生命周期:

        1. 新建状态,当程序使用new关键字创建了一个线程之后,该线程就处于新建状态,此时仅由JVM为其分配内存,并初始化其成员变量的值

        2. 就绪状态,当线程对象调用了start()方法之后,该线程处于就绪状态。Java虚拟机会为其创建方法调用栈和程序计数器,等待调度运行

        3. 运行状态,如果处于就绪状态的线程获得了CPU,开始执行run()方法的线程执行体,则该线程处于运行状态

        4. 阻塞状态,当处于运行状态的线程失去所占用资源之后,便进入阻塞状态。阻塞状态又分为以下三种

                等待阻塞:运行状态中的线程执行wait()方法,使本线程进入到等待阻塞状态;

                同步阻塞 -- 线程在获取synchronized同步锁失败(因为锁被其它线程所占用),它会进入同步阻塞状态;

                其他阻塞 -- 通过调用线程的sleep()或join()或发出了I/O请求时,线程会进入到阻塞状态。当sleep()状态超时、join()等待线程终止或者超时、或者I/O处理完毕时,线程重新转入就绪状态。

        5 消亡状态

自定义线程名称:

        实际上,线程默认名称从 Thread0开始逐步递增,当然我们也可以自定义线程名称

        static Thread currentThread()  获取当前线程对象

        getName()  获取线程名称

        设置线程名称:setName或者构造函数

相关文章

  • java15(多线程--01 thread类)

    进程: 进程是一个正在执行中的程序,每一个进程都有一个执行顺序。该顺序是一个执行路径,或者叫一个控制单元 线程: ...

  • 多线程创建的两种基本方法

    方法1 继承Thread() 继承Thread()类的多线程创建步骤 新建一个类继承 Thread() 类 重写 ...

  • Python爬虫速度很慢?并发编程了解一下吧

    文章目录 前言 基础知识 GIL 多线程 创建Thread 对象 自定义类继承 Thread 私信小编01即可获取...

  • java线程&和各种奇奇怪怪的锁

    1、Java线程 一、Java多线程常用的两种实现方法 1、 继承Thread类 子类继承Thread类具备多线程...

  • 2020-10-25 Java线程

    Thread类java中一个类可以通过继承Thread类实现run()实现多线程。继承thread的类通过star...

  • 多线程

    Java多线程----Thread java使用Thread类代表线程,所有的线程对象必须是Thread类或者其子...

  • 多线程学习-第一天

    多线程学习-第一天 1 多线程的实现方式 1.1 继承Thread类 通过继承Thread类并重写run方法实现:...

  • 4 多线程00

    一 多线程的创建 1、thread/runnablethread:继承Thread类runnable:实现Runn...

  • Javad多线程(未)

    启动多线程的3种方式 继承Thread类、实现Runnable接口、匿名类 继承Thread类 在run方法中实现...

  • Python 多线程笔记

    Python 多线程笔记 创建线程 1. 使用函数创建多线程 2. 使用类创建多线程 继承 Thread 类 重写...

网友评论

      本文标题:java15(多线程--01 thread类)

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