java多线程的几种实现方式
生活随笔
收集整理的這篇文章主要介紹了
java多线程的几种实现方式
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.繼承Thread類,重寫run方法
Thread類本質上是實現了Runnable接口的一個實例。因此,啟動線程的唯一方式就是通過Thread類的start()方法,start()方法是個native方法,它會啟動一個新的線程,并執行run()方法。
/*** Create By CodeCow on 2020/8/3.*/ public class TestThread {public static void main(String[] args) {MyThread mt = new MyThread("新線程————看大片");//開啟新線程mt.start();//在主方法中執行for循環for (int i = 0; i < 5; i++) {System.out.println("main線程————擼代碼,沒意思。。" + i);}}//繼承Thread類public static class MyThread extends Thread {//定義指定線程名稱的構造方法public MyThread(String name) {//調用父類的String參數的構造方法,指定線程的名稱(原理:利用繼承特點,將線程名稱傳遞)super(name);}//重寫run方法,定義線程要執行的代碼@Overridepublic void run() {for (int j = 0; j < 5; j++) {//getName()方法 來自父親(就是Thread類中,獲取當前線程名稱方法)System.out.println(getName() + " :好刺激喲,不行了,快、快。。" + j);}}} }2.實現Runnable接口,重寫run方法
Runnable接口從“Java1.0”就已經有了,它內部只有一個抽象方法run()。因此:要啟動線程就要實現Runnable接口并重寫它的run()方法。
注意:由于Java不支持多繼承,如果自己的類已經繼承了其他類,要啟動線程就要實現Runnable接口并重寫它的run()方法
/*** Create By CodeCow on 2020/8/3.*/ public class TestRunnable implements Runnable{//重寫run()方法, 寫自己需要的代碼@Overridepublic void run() {for (int i = 0; i < 5; i++) {//currentThread() 返回對當前正在執行的線程對象的引用System.out.println(Thread.currentThread().getName()+" :好刺激喲,不行了,快、快。。" + i);}}public static void main(String[] args) {//創建自定義類對象 線程任務對象TestRunnable mr = new TestRunnable();//創建線程對象Thread t = new Thread(mr, "新線程————看大片(正經人別多想)");t.start();for (int i = 0; i < 5; i++) {System.out.println("main線程————擼代碼,沒意思。。" + i);}} }3.實現Callable接口
Runnable是執行工作的獨立任務,但是不返回任何值。如果我們希望任務完成之后有返回值,可以實現Callable接口
/*** Create By CodeCow on 2020/8/3.*/ @Slf4j public class TestCallable implements Callable<String> {public static void main(String[] args) throws ExecutionException, InterruptedException {ExecutorService executorService = Executors.newCachedThreadPool();TestCallable testCallable = new TestCallable();Future<String> future = executorService.submit(testCallable);log.info("future: " + future.get()); //get會阻塞executorService.shutdown();}@Overridepublic String call() throws Exception {return "帶含有返回值的線程";} }4.通過線程池創建線程
創建線程的方式就是繼承Thread,線程池也不例外,創建好的線程對象來執行任務
總結
以上是生活随笔為你收集整理的java多线程的几种实现方式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 平面设计名词解释——简单易懂
- 下一篇: SQL server 创建员工表、薪资表