Thread类中的基本方法 sleep join currentThread yield setDaemon setPriority

public class Test {
    public static void main(String[] args) {
        Thread t1 = new Thread(new TaskA());
        Thread t2 = new TaskB();

        t1.start();
        t2.setDaemon(true);     //调用了setDaemon()方法  不需要调用join()方法

        t2.start();

        //sleep()进入限期等待  join()进入无限期等待
//        try {
//            t1.join();  //join方法 表示让当前线程(主线程)进入等待状态(无限期等待),让出cpu时间片。等待到t1结束为止,主线程执行
//            t2.join();  //同上
//        } catch (InterruptedException e) {
//            e.printStackTrace();
//        }

        //Thread.currentThread() 会返回当前正在执行(正处在运行状态)的线程
        System.out.println(Thread.currentThread().getName());   //获取当前执行线程对象并且获取里面name属性
        System.out.println("所有线程结束");
    }
}

class TaskA implements Runnable{
    @Override
    public void run() {
        for (int i= 1;i<=52;i++){
            System.out.print(i);
//            System.out.println(Thread.currentThread().getName());
//            try {
//                Thread.sleep(100);
//            } catch (InterruptedException e) {
//                e.printStackTrace();
//            }

        }
    }
}

class TaskB extends Thread{
    @Override
    public void run() {
        for (char i = 'A'; i <='Z' ; i++) {
            System.out.print(i);
//            System.out.println(Thread.currentThread().getName());
            try {
                Thread.sleep(180);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}

Runnable对象 ==>任务对象  new Thread(任务对象)  
单核cpu环境下,运行状态的线程只有一个。

sleep()进入限期等待  join()进入无限期等待
Thread.currentThread() 会返回当前正在执行(正处在运行状态)的线程
Thread.yield() 表示当前线程放弃当前cpu时间片,下次os分cpu可能还会分给该线程(调用yield的线程)
t.setDaemon(true)  true/false   true表示该线程为守护线程,该线程是否结束无所谓,进程中的非守护
线程都结束时,不管该守护线程是否终止,该进程终止。

t1.setPriority(10);	//设置线程的优先级  1-10的整数 10为最高优先级  优先让t1线程先执行完毕
		//t1.setPriority(Thread.MAX_PRIORITY);
不同的操作系统有不同的线程调度策略,windows支持优先级,其他不确定。

这辈子坚持与不坚持都不可怕,怕的是独自走在坚持的道路上!

猜你喜欢

转载自blog.csdn.net/taiguolaotu/article/details/107690258