• JavaSE基础day21 Thread类



    Thread

    获取线程名称

    1、getName()

    获取线程名称

    2、特点:

    (1)如果线程没有给一个特定的名字,自己默认名称:Thread-x

          x0开始依次往后递增

    代码

    设置线程名称

    1、setName(String name) :给线程对象设置名称

    2、Thread(String name) :通过构造给线程命名

    3、Thread(Runnable target, String name) :在接收一个任务的同时给线程命名

    代码

     

    获取线程对象

    1、方法:currentThread()

    2、特点:

    (1)该方法是静态方法,使用类名直接调用即可

    (2)该方法返回的对象并不是固定的线程对象,以后哪一条执行执行该方法,返回对应的线程对象。

     

    代码

     

     

    练习

    1、获取main线程的线程名称

     

    2、获取垃圾回收线程名称

     

    代码

     

     

    线程休眠

    1、Thread.sleep(long time):让执行这段代码的线程休息一会

    2、注意:

    (1)该方法是静态方法,参数是一个毫秒值,表示线程休眠的时间

    (2)哪一个线程执行该方法,就让哪一个线程休息

    (3)如果在一个非重写方法中使用sleep,可以选择声明异常也可以选择处理异常

    (4)如果在一个重写的方法中使用sleep,只能处理异常不能声明异常

            父类或者接口中的方法没有异常的声明,在重写时不能声明

    (5)将来调用sleep方法的线程,不一定是执行该方法的线程

     

    (6)使用interrupt强制唤醒某一个线程,一旦线程的休眠被唤醒之后,就会抛出线程中断异常。

     

    代码

     

     

     

    守护线程

    1、概念:保护其他线程能够正常运行的线程就是守护线程。

    2、方法:

    setDaemon(boolean on) :将当前线程对象设置为指定线程,参数为true为守护线程否则为非守护线程。

    isDaemon():判断当前对象是否是一个守护线程

    3、特点:

    (1)在线程种有两类分支:

         第一种:守护线程(后台线程)用来保护其他线程的线程

         第二种:非守护线程(用户线程)受保护的线程

    (2)main线程以及自己定义的线程都默认为非守护线程

    (3)守护线程会随着非守护线程的结束而结束

    (4)如果进程中有很多非守护线程,但是只有一条守护线程,那么只要存在一条非守护,守护线程就要一直守护,如果所有的非守护全部结束,守护线程才跟着结束

     

    代码

     

     

    练习

    (1)判断main线程是否是一个守护线程:不是

    (2)判断垃圾回收线程是否是一个守护线程:是

    设置线程优先级

    1、线程的优先级:

    定义的每一条线程都有一个默认的优先级,默认的优先级都是相同的5,如果线程的优先级都相同,那么每次被cpu执行的几率都是相同;如果线程的优先级高,被cpu先执  行的几率高,如果线程的优先级低,被cpu先执行的几率低

    2、设置优先级的方法:

    setPriority(int newPriority) :设置线程优先级

    10:最高

    1:最低

    3、静态常量:

    static int MAX_PRIORITY   10

    线程可以拥有的最大优先级。

    static int MIN_PRIORITY   1

    线程可以拥有的最小优先级。  

    static int NORM_PRIORITY   5

    分配给线程的默认优先级。

     

  • 相关阅读:
    字符串作为map的key
    类成员函数模板特化
    函数模板特化
    linux 下第一个Libevent代码学习
    linux下libevent安装
    随笔
    SELECT INTO 和 INSERT INTO SELECT 两种表复制语句
    字符串处理总结之一(C#String类)
    XPath语法 在C#中使用XPath示例
    C#代码实现邮箱验证C#中及一些常用的正则表达式
  • 原文地址:https://www.cnblogs.com/lw1095950124/p/16093719.html
Copyright © 2020-2023  润新知