JAVA多執行緒實現方式主要有三種:繼承Thread類、實現Runnable介面、使用ExecutorService、Callable、Future實現有返回結果的多執行緒,以下是小編為大家搜尋整理的java多執行緒,歡迎閱讀!更多精彩內容請及時關注我們應屆畢業生考試網!
多執行緒的.基本實現
程序指執行中的程式,每個程序都會分配一個記憶體空間,一個程序中存在多個執行緒,啟動一個JAVA虛擬機器,就是打開個一個程序,一個程序有多個執行緒,當多個執行緒同時進行,就叫併發。
Java建立執行緒的兩種方式為: 繼承Thread類 和實現Runnable介面
Thread類
1、通過覆蓋run方法實現執行緒要執行的程式程式碼
2、Start()開始執行多執行緒
package iancheng;
public class d1 extends Thread{
public void run(){
for(int i=0 ; i<50; i++){
tln(i);
tln(currentThread()。getName());
try {
sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generatedcatch block
tStackTrace();
}
}
}
public static void main(String[] args){
new d1()。start();
new d1()。start();
}
}
多個執行緒共享一個例項的時候,程式碼程式碼如下:
package iancheng;
public class d1 extends Thread{
int i=0;
public void run(){
for(i=0 ; i<50; i++){
tln(i);
tln(currentThread()。getName());
try {
sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generatedcatch block
tStackTrace();
}
}
}
public static void main(String[] args){
new d1()。start();
new d1()。start();
}
}
結果如下所示:
0
Thread-1
0
Thread-0
1
Thread-1
1
實際2個執行緒在操縱不同的變數a,在執行run方法時候,執行緒把a都當做自己的變數在執行。
Runnable介面實現多執行緒
當一個繼承自Thread時,就不能再繼承其他類,使用Runnable介面解決了此問題,在新建一個Thread類中,在構造方法中初始化
Thread(Runnable target)
分配新的 Thread 物件。
Thread(Runnable target,String name)
分配新的 Thread 物件。
package iancheng;
public class D2 implements Runnable{
int i=0;
public void run(){
for(i=0 ; i<50; i++){
tln(i);
tln(entThread()。getName());
try {
p(100);
} catch (InterruptedException e) {
// TODO Auto-generatedcatch block
tStackTrace();
}
}
}
public static void main(String[] args){
D2 d=new D2();
Thread t=new Thread(d);
t();
}
}