多线程常见的成员方法(获得当前线程信息、优先级等)

方法

Thread的
在这里插入图片描述

获得线程名

  • 系统默认方法名:

从0开始

  • 用set方法设置线程名,再用get()方法获得线程名

测试类中定义定义名称

MyThread myThread=new MyThread();
        myThread.setName("子线1==");
        myThread.start();

实体类中用get()方法获得名字

package com.itjh.pojo;

public class MyThread extends Thread{
    @Override
    public void run() {
        for (int i = 0; i < 200; i++) {
            System.out.println(getName()+"。。。子线程。。。。。"+i);
        }
    }
}
  • currentThread():获得当前线程对象
  • 系统给现成的优先级默认为5,看下面第二个结果是
public class TestMyT2 {
    public static void main(String[] args) {
        MyTread2 myTread2=new MyTread2();
        myTread2.start();
        System.out.println(myTread2.currentThread());
    }
}

结果是:Thread[main,5,main],解释看下面测试类的解释

或者实体类中也可以写,和上面没有一定得打配合

public void run() {
        for (int i = 0; i < 50; i++) {
            System.out.println(currentThread());
            System.out.println(getName()+"。。子线程==。。。");
        }
    }

结果是:

Thread[Thread-0,5,main]:[]中的前一个意为子线程的对象(可以在子线程所在的类里面重写一个含参构造函数,这样就可以在测试类创建Thread对象时传入你想要起的名字了);中间的是当前线程的优先级,默认为5(优先级越高,抢夺到执行的机会越大);后一个为现在是哪个对象正在执行它

  • 构造函数命名:在实体类中重写一个构造函数,因为父类才有这个构造函数,所以得借助super():
public MyTread2(String name){
    super(name);
    }

然后测试类创建对象就可以直接传参了,记得加一个currentThread()方法获得线程名

package com.itjh.Test;

import com.itjh.pojo.MyTread2;

public class TestMyT2 {
    public static void main(String[] args) {
        MyTread2 myTread2=new MyTread2("小飞机");
        myTread2.start();
        System.out.println(myTread2.currentThread());
    }
}

结果(部分):

Thread[小飞机,5,main]
小飞机。。子线程==。。。
Thread[小飞机,5,main]
小飞机。。子线程==。。。

暂停线程

  • Sleep()方法属于Tread类的方法:测试类中的调用子线程时,哪一条线程执行到这个方法就休眠指定的时间:1000=1秒=1000毫秒,记得用try() catch()包起来,因为Tread类中没有抛出异常,作为他的子类自然也没有
package com.itjh.pojo;

public class MyTread2 extends Thread {

    public MyTread2(){}

    public MyTread2(String name){
    super(name);
    }

    @Override
    public void run() {
        for (int i = 0; i < 10; i++) {
            System.out.println(currentThread());
            try{
                Thread.sleep(1000);
            }catch (Exception e){

            }
            System.out.println(getName()+"。。子线程==。。。");
        }
    }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值