this的用法 - thread(this, ThreadName)对于Java中这个语句,this是什么?还有Thread为什么需要一个this?
黄舟
黄舟 2017-04-17 11:41:17
0
2
999

就拿这个程序为例。
public class GetCurrentThread implements Runnable {
Thread th;

public GetCurrentThread(String threadName) {
th = new Thread(this,threadName); //<----DOUBT
System.out.println("get threadname "+th.getName());
th.start();
}

public void run() {
System.out.println(th.getName()+" is starting.....");
System.out.println("Current thread name : " + Thread.currentThread().getName());
}

public static void main(String args[]) {
System.out.println("Current thread name : " + Thread.currentThread().getName());
new GetCurrentThread("1st Thread");
//new GetCurrentThread("2nd Thread");
}
}

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回覆(2)
巴扎黑

首先,這是一個建構函數,SDK說明如下

public Thread(Runnable target,
String name)
Allocates a new Thread object. This constructor has the same effect as Thread (null, target, name).
Parameters:
target - the object whose run method is invoked when this thread is started. If null, this thread's run method is invoked.
name - the name of the new thread

兩個參數Runnable和String類型,你的GetCurrentThread實作了Runnable接口,這裡的this是代表目前對象,剛好這裡的目前物件是一個Runnable。

黄舟

Thread要的不是this,它要一個Runnable,在你的程式碼裡,剛好this是一個Runnable,所以就這麼寫了。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板