java毕向东听课笔记16(线程5)

守护线程:(后台线程)

根据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();
		
	}
}



你可能感兴趣的:(java毕向东课程笔记)