Java--Thread类常用方法介绍

Thread类常用方法

Thread对象调用:

序号方法方法描述
1pubic void start()使该线程开始执行;Java虚拟机调用该线程的run方法
2public void run()如果该线程是使用独立的 Runnable 运行对象构造的,则调用该 Runnable 对象的 run 方法;否则,该方法不执行任何操作并返回。
3public final void setName(String name)改变线程名称,使之与参数 name 相同。
4public final void setPriority(int priority)更改线程的优先级
5public final void setDaemon(boolean on)将该线程标记为守护线程或用户线程。
6public final void join(long millisec)调用线程等待被调用线程完成后,才能继续用下运行。参数为最多等待多少毫秒
7public void interrupt()中断线程
8public final boolean isAlive()测试线程是否处于活动状态。

Thread类调用:

序号方法方法描述
1public static void yield()暂停当前正在执行的线程对象,并执行其他线程。
2public static boolean holdsLock(Object x)当且仅当当前线程在指定的对象上保持监视器锁时,才返回 true。
3public static void sleep(long millisec)在指定的毫秒数内让当前正在执行的线程休眠(暂停执行),此操作受到系统计时器和调度程序精度和准确性的影响。
4public staticThread currentThread()返回对当前正在执行的线程对象的引用。
5public static void dumpStack()将当前线程的堆栈跟踪打印至标准错误流。

示例:

package pers.zhang.thread;

/**
 * @author zhang
 * @date 2020/1/15 - 0:36
 */
public class GuessANumber extends Thread {

    private int number;

    public GuessANumber(int number) {
        this.number = number;
    }

    public void run() {
        int counter = 0;
        int guess = 0;
        do {
            guess = (int) (Math.random() * 100 + 1);
            System.out.println(this.getName() + " guesses " + guess);
            counter++;
        } while(guess != number);
        System.out.println("** Correct!" + this.getName() + "in" + counter + "guesses.**");
    }
}
package pers.zhang.thread;

/**
 * @author zhang
 * @date 2020/1/15 - 0:35
 */
public class DisplayMessage implements Runnable {

    private String message;

    public DisplayMessage(String message) {
        this.message = message;
    }

    @Override
    public void run() {
        while(true) {
            System.out.println(message);
        }
    }
}
package pers.zhang.thread;

/**
 * @author zhang
 * @date 2020/1/15 - 0:37
 */
public class ThreadClassDemo {

    public static void main(String [] args) {
        Runnable hello = new DisplayMessage("Hello");
        Thread thread1 = new Thread(hello);
        thread1.setDaemon(true);
        thread1.setName("hello");
        System.out.println("Starting hello thread...");
        thread1.start();

        Runnable bye = new DisplayMessage("Goodbye");
        Thread thread2 = new Thread(bye);
        thread2.setPriority(Thread.MIN_PRIORITY);
        thread2.setDaemon(true);
        System.out.println("Starting goodbye thread...");
        thread2.start();

        System.out.println("Starting thread3...");
        Thread thread3 = new GuessANumber(27);
        thread3.start();
        try {
            thread3.join();
        }catch(InterruptedException e) {
            System.out.println("Thread interrupted.");
        }
        System.out.println("Starting thread4...");
        Thread thread4 = new GuessANumber(75);

        thread4.start();
        System.out.println("main() is ending...");
    }
}

输出每次都不同:

Starting hello thread...
Starting goodbye thread...
Hello
Hello
Hello
Hello
Hello
Hello
Goodbye
Goodbye
Goodbye
Goodbye
Goodbye
.......
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值