JavaはRunnableインタフェース方式を実現してマルチスレッドの優位性を実現する
4476 ワード
1.Threadの継承
2.Runnableの実装
3.テストTest
4.出力結果:
結論:プログラムの実行結果から,継承Threadは実際には3つのスレッドでそれぞれ5枚のチケットを販売し,Runnableの3つのスレッドで5枚のチケットを共同で販売していることが分かった.
まとめ:Runnableインタフェースを実現することはThreadを継承するよりも利点がある:1同じプログラムコードの複数のスレッドに適して統一リソースを処理する場合②java単一継承特徴による限界を避けることができる③開発プログラムの堅牢性を強化し、コードは複数のスレッドで共有でき、コードとデータは独立している
そこで、マルチスレッド操作を実現するためにRunnableインタフェース方式を開発しました.
package com.test.thread;
public class TicketThread1 extends Thread {
private int ticket = 5;
@Override
public void run() {
for (int i = 0; i < 1000; i++) {
if (ticket > 0) {
System.out.println("Thread ==" + ticket--);
;
}
}
}
}
2.Runnableの実装
package com.test.thread;
public class TicketThread2 implements Runnable {
private int ticket = 5;
@Override
public void run() {
for (int i = 0; i < 1000; i++) {
if (ticket > 0) {
System.out.println("Runnable ==" + ticket--);
;
}
}
}
}
3.テストTest
package com.test.thread;
public class TicketTest {
public static void main(String[] args) {
TicketThread1 ticket1 = new TicketThread1();
TicketThread1 ticket2 = new TicketThread1();
TicketThread1 ticket3 = new TicketThread1();
ticket1.start();
ticket2.start();
ticket3.start();
TicketThread2 ticketRunnable = new TicketThread2();
new Thread(ticketRunnable).start();
new Thread(ticketRunnable).start();
new Thread(ticketRunnable).start();
}
}
4.出力結果:
Thread ==5
Thread ==5
Thread ==5
Thread ==4
Thread ==4
Thread ==3
Thread ==4
Thread ==2
Thread ==3
Thread ==1
Thread ==3
Thread ==2
Thread ==1
Thread ==2
Runnable ==5
Thread ==1
Runnable ==4
Runnable ==1
Runnable ==3
Runnable ==2
結論:プログラムの実行結果から,継承Threadは実際には3つのスレッドでそれぞれ5枚のチケットを販売し,Runnableの3つのスレッドで5枚のチケットを共同で販売していることが分かった.
まとめ:Runnableインタフェースを実現することはThreadを継承するよりも利点がある:1同じプログラムコードの複数のスレッドに適して統一リソースを処理する場合②java単一継承特徴による限界を避けることができる③開発プログラムの堅牢性を強化し、コードは複数のスレッドで共有でき、コードとデータは独立している
そこで、マルチスレッド操作を実現するためにRunnableインタフェース方式を開発しました.