/** extends thread 非實現變數共享 */
public
class
mythread
extends
thread
@override
public
void
run()
}/**
* 使用extends thread 建立3個執行緒(即建立3個mythread例項物件)
* 每個執行緒都有各自的count變數, 自己減少自己的count值, 因此變數不共享。
*/public
static
void
init()
public
static
void
main(string args)
/** 列印結果
* thread b count = 2
* thread c count = 2
* thread c count = 1
* thread c count = 0
* thread b count = 1
* thread b count = 0
* thread a count = 2
* thread a count = 1
* thread a count = 0
*/}
/** extends thread 實現變數共享 */
public
class
mythread
extends
thread
@override
public
void
run() catch (interruptedexception e)
system.out.println(thread.currentthread().getname()
+ " 正在**第 " + (tickets--) + " 張");
} else }}
}public
static
void
init()
public
static
void
main(string args)
/** 列印結果
* thread a tickets = 5
* thread c tickets = 4
* thread b tickets = 3
* thread b tickets = 2
* thread b tickets = 1
*/}
// 執行執行緒的target是同一物件, 變數共享
public
class
mythread
implements
runnable catch (interruptedexception e)
system.out.println(thread.currentthread().getname() + this.i);}}
public
static
void
init()
public
static
void
main(string args)
}
// thread物件
public
static
void
main(string args)
}}.start();
}
// 實現runnable藉口,建立多執行緒並啟動
public
static
void
main(string args)
}}) .start();
}
public
static
void
main(string args) catch (interruptedexception e)
system.out.println("runnable :"
+ thread.currentthread().getname());}}
}) catch (interruptedexception e)
system.out.println(
"thread :" + thread.currentthread().getname());}}
}.start();
}// 列印結果:thread :thread-0
多執行緒02 執行緒建立
1 方式一 繼承 thread 類,重寫run 方法,呼叫start 開啟執行緒 public class thread01 extends thread main 是主線程 public static void main string args throws interruptedexceptio...
執行緒建立方式
使用乙個類繼承thread類,之後通過該類重寫run方法,可以直接通過建立該類物件的start方法建立執行緒。通過實現runnable介面建立執行緒類。建立執行緒時 new thread 實現介面的類例項,建立執行緒的名稱 start 對比兩種方法,其中最大的差別就是通過實現runnable介面的方...
執行緒建立方式
建立執行緒的兩種方式 1.繼承thread類 其步驟如下 1 自定義執行緒類繼承thread類 2 在自定義的執行緒類中覆蓋thread類的run 方法 3 在main 方法中建立自定義的執行緒的物件 4 呼叫start 方法啟動執行緒 2.實現runnable介面 其步驟如下 1 自定義執行緒實現...