守护线程:(后台线程)
根据java api ,只说一个方法:setDaemon()的作用是将线程标记为守护线程或用户线程,当正在运行的线程都是守护线程时,java虚拟机退出,特别的,该方法必须在启动线程前调用。
在所有的前台线程都结束后,后台线程自动结束。能看到的线程都是前台线程,比如主线程。
------------------------------------------------
join方法:
等待该线程终止。说白点,就是该线程要cpu执行权。
当A线程执行到了B线程的join方法时,那么A线程就会等待,等B线程都执行完,A才会执行。
join可以用来临时加入线程执行。
---------------------------------------------------
线程中有一个toString方法,覆盖了父类的toString方法,会显示线程的优先级,组等等。
重点说说优先级,优先级代表了抢夺cpu执行权的能力。
默认优先级是5(范围是1~10),可以通过setPriority(int newPriority)方法来更改优先级。又因为1,5,10的优先级最为效果明显,所以对应了Thread.MIN_PRIORITY,Thread.NORM_PRIORITY和Thread.MAX_PRIORITY
-----------------------------------------------------
yield方法
暂停当前正在执行的线程对象,并执行其他线程。
------------------------------------------------------
什么时候用多线程:
当程序中某些代码需要被同时执行,就用线程进行封装。最常用的是用匿名内部类。
如:
class ThreadTest{ public static void main(String[] args){ new Thread(){ public void run(){ for(int x = 0;x<100;x++){ System.out.println(Thread.currentThread().getName()+"...."+x); } } }.start(); Runnable r = new Runnable(){ public void run(){ for(int x=0;x<100;x++) System.out.println(Thread.currentThread().getName()+"..."+x); } }; new Thread(r).start(); } }