java多線程

來源:文萃谷 2.47W

JAVA多線程實現方式主要有三種:繼承Thread類、實現Runnable接口、使用ExecutorService、Callable、Future實現有返回結果的多線程,以下是小編為大家搜索整理的java多線程,歡迎閲讀!更多精彩內容請及時關注我們應屆畢業生考試網!

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();

}

}

熱門標籤