public class ThreadDemo {

    // 线程调度分为两种:分时调度模型和抢占式调度模型
    // 分时调度模型:所以线程轮流使用cpu,平均分配每个线程使用cpu的时间
    // 抢占式调度模型:让优先级高的线程使用cup,如果优先级相同,随机选择一个线程
    // Java是抢占式调度模型,setPriority(10)是设置线程优先级的方法,参数1-10,不设置默认是5,优先级只是抢到cpu的概率更高一点,并不是百分比优先

    // setDaemon(true),线程守护方法,把第二个线程设置为守护线程当普通线程执行完毕后,守护线程也就没有继续执行的必要了
    public static void main(String[] args) throws InterruptedException, ExecutionException {
        MyThread t = new MyThread();
        t.setPriority(10);
        t.start();

        MyRunnable r = new MyRunnable();
        Thread t1 = new Thread(r);
        t1.setPriority(1);
        t1.setDaemon(true);
        t1.start();
    }
}

public class MyThread extends Thread {
    // Thread.sleep(1000)方法是让线程休眠1000毫秒
    @Override
    public void run() {
        for (int i = 0; i < 100; i++) {
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println(getName() + i);
        }
    }
}