一、Runnable介紹
Java中實現多線程有兩種方式:繼承Thread類或者實現Runnable介面。Runnable介面是一種更輕量級、更靈活的實現多線程的方式,更加符合「面向介面編程」的思想。
public interface Runnable { public abstract void run(); }
從上面的定義可以看出,Runnable介面只有一個run()方法,表示要執行的任務。如果要使用Runnable介面實現多線程,需要新建一個類實現Runnable介面並實現run()方法。
二、與Thread類的對比
與Thread類相比,使用Runnable介面實現多線程有以下優點:
1、避免單繼承局限性:Java中類只能單繼承,但是使用Runnable介面卻可以實現多個介面。
2、降低耦合性:Thread類直接包含了線程的執行方法run()並繼承了Thread類的一些方法,與其他類的耦合度較高;而使用Runnable介面,線程的執行方法run()被單獨封裝,可以更加靈活的組合。
3、方便線程池管理:可將Runnable作為提交到線程池的任務對象。
三、使用示例
下面是一個使用Runnable介面實現多線程的示例。
public class MyRunnable implements Runnable { private String threadName; public MyRunnable(String threadName) { this.threadName = threadName; } public void run() { for(int i = 0; i < 5; i++) { System.out.println(threadName + " " + i); try { Thread.sleep((long)(Math.random() * 1000)); } catch (InterruptedException e) { e.printStackTrace(); } } } } public class Test { public static void main(String[] args) { MyRunnable r1 = new MyRunnable("Thread-1"); MyRunnable r2 = new MyRunnable("Thread-2"); Thread t1 = new Thread(r1); Thread t2 = new Thread(r2); t1.start(); t2.start(); } }
執行結果如下:
Thread-1 0 Thread-2 0 Thread-2 1 Thread-1 1 Thread-1 2 Thread-2 2 Thread-2 3 Thread-1 3 Thread-1 4 Thread-2 4
四、總結
Java Runnable是一種更加靈活、輕量級的實現多線程的方式,相比於Thread類更具有優勢。使用Runnable介面可以提高java程序的彈性和可擴展性。在實際開發中,應該根據具體需求選擇合適的多線程實現方式。
原創文章,作者:OXJT,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/146417.html