通過實現Runnable介面建立執行緒
阿新 • • 發佈:2019-02-03
- 實現runnable介面來建立執行緒類
- 建立Runnable實現類的物件
- 以Runnable實現類的物件作為thread的目標target來建立Thread物件
package newThread;
public class Twothread implements Runnable {
private int i;
@Override
public void run() {
//run方法同樣是執行緒執行體
for(;i<10;i++) {
//此時獲取執行緒名必須用Thread.currentThread().getName(),不能用this.getName()
System.out.println(Thread.currentThread().getName()+" "+i);
}
}
public static void main(String[] args) {
for(int i=0;i<5;i++) {
System.out.println(Thread.currentThread().getName()+""+i);
if(i==1) {
Twothread th=new Twothread();//新建runnable物件
//通過new Thread(target,name)建立新執行緒
new Thread(th,"新執行緒1").start();//將runnable物件作為target例項化執行緒
new Thread(th,"新執行緒2").start();
}
}
}
}
執行結果如圖:
如圖,執行緒1和執行緒2共享i變數,因為執行緒共用target物件。使用Thread例項化執行緒時,不同執行緒不能共用target的例項屬性。對比“通過thread例項化執行緒理解”