java多线程 join方法以及优先级方法

时间:2021-09-11 10:36:44

/*
join:
当A线程执行到了B线程的.join()方法时,A就会等待。等B线程都执行完,A才会执行。

join可以用来临时加入线程执行。

1.线程使用join方法,主线程就停下,等它执行完,那么如果该线程冻结了,主线程就挂了,这也是为什么线程要抛异常的原因
2.当两个或以上线程开启了,这个A线程才使用join方法,那么主线程还是停下,这几个个线程交替进行,直到A执行完,主线程才复活

*/

/*
1.tostring(),方法,获取线程具体的名字,优先级
2.优先级代表抢资源的频率
3.java中设置有1  -  5   -  10这三个级别,因为是固定值,所以用字母大写表示
4.跟设置后台线程一样,都属于线程的函数,由线程对象直接调用           r.setPriority(Thread.字母级别)                                     
5.匿名内部类?是多线程的关键,必须掌握
*/

class Demo implements Runnable
{
    public void run()
    {
        for(int x=0; x<70; x++)
        {
            System.out.println(Thread.currentThread().toString()+"....."+x);
            Thread.yield();
        }
    }
}

class  JoinDemo
{
    public static void main(String[] args) throws Exception
    {
        Demo d = new Demo();
        Thread t1 = new Thread(d);
        Thread t2 = new Thread(d);
        t1.start();
        
        //t1.setPriority(Thread.MAX_PRIORITY);

t2.start();

//t1.join();

for(int x=0; x<80; x++)
        {
            //System.out.println("main....."+x);
        }
        System.out.println("over");
    }
}