java多线程编程系列-基础1-线程getName和setName的使用

 

    多线程的实现方式有两种:

    1.继承Thread类

    2.实现了runnable接口

    其实在Thread类内部也是实现了Runnable的接口的,写写代码印象更加深刻下面请看:

 

 

//继承Thread类
package endual;

public class MyThread extends Thread{

	public void run() {
		System.out.println("Hello word") ;
	}
	
}


  Main的测试类:

package endual;

public class MainThreadApp {

	public static void main(String[] args) {

		MyThread t = new MyThread() ;
		t.start() ; //这边用的是start(),可不要用run啊
		
	}

}
 

 实现借口的

 

package endual;

public class MyThread2 implements Runnable{

	public void run() {
		System.out.println("Hello word") ;
	}
	
}

 main的测试类

 

package endual;

public class MainApp2 {

	public static void main(String[] args) {
        
		/*
		 * 还记得我们实现了接口不
		 * 首先定义一个接口然后去实现这个接口
		 */
		
		
		Runnable rnn = new MyThread2() ;
		Thread tt = new Thread(rnn) ;
		tt.start() ;
		
	}

}

 

这样是最基本的创建线程的两种方法。

 

 

下面我们来看给线程取名字:我们用的setName和getName的方法。

 取名字的话,可以在线程开始前,和线程运行的时候取名字的,但是

 我们约定了,要在线程开始前个线程取名字的,并且不要改变jvm线程的名字哦。

 

package endual;

public class MainApp2 {

	public static void main(String[] args) {
        
		/*
		 * 还记得我们实现了接口不
		 * 首先定义一个接口然后去实现这个接口
		 */
		
		
		Runnable rnn = new MyThread2() ;
		Thread tt = new Thread(rnn) ;
		tt.setName("我是线程1") ;
		tt.start() ;
                //tt.setName("我是线程1") ;不要这样取名字,请在start()前面取名字 
 }

}
 

这边还有一个知识点就是start()这个方法的启动的时刻哦。

 

start()方法同志线程规划器这个新线程已经准备好了,而且应当在规划器的最
方便的时候调用这个线程的run()方法的,因为多线程编程的非确定性,程序员不可能确定线程何时会开始的,只知道调用start()是在说明要马上启动线程了。

这也是我这个笔记想强调的一点。
 

 

 

 

 

 

 

你可能感兴趣的:(java)