這篇文章將為大家詳細講解有關java中JUC多線程的方式有哪些,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
我們擁有十多年網(wǎng)頁設計和網(wǎng)站建設經(jīng)驗,從網(wǎng)站策劃到網(wǎng)站制作,我們的網(wǎng)頁設計師為您提供的解決方案。為企業(yè)提供成都網(wǎng)站設計、成都做網(wǎng)站、外貿(mào)網(wǎng)站建設、微信開發(fā)、微信小程序開發(fā)、手機網(wǎng)站制作、H5開發(fā)、等業(yè)務。無論您有什么樣的網(wǎng)站設計或者設計方案要求,我們都將富于創(chuàng)造性的提供專業(yè)設計服務并滿足您的需求。
import java.util.ArrayList; import java.util.List; import java.util.concurrent.*; /** * @Author:MuJiuTian * @Description: * @Date: Created in 下午2:42 2019/7/29 */ public class Test1 { public static void main(String[] args) throws ExecutionException, InterruptedException { //testThreadPool(); testThreadPool(); } public static void testThreadPool(){ ExecutorService executorService = Executors.newFixedThreadPool(10); List>> list= new ArrayList<>(); for (int i = 0;i<10; i++){ Future > future = executorService.submit(new MyCallable()); list.add(future); } list.forEach(n -> { try { System.out.println(n.get()); } catch (InterruptedException e) { e.printStackTrace(); } catch (ExecutionException e) { e.printStackTrace(); } }); } public static void testMyCallable() throws ExecutionException, InterruptedException { FutureTask futureTask = new FutureTask<>(new MyCallable()); new Thread(futureTask).start(); List
list = (List ) futureTask.get(); list.forEach(n -> System.out.println(n)); } public static void testMyRunnable(){ new Thread(new MyRunnable()).start(); } public static void testMythread(){ new MyThread().start(); } } //多線程第一種方式:繼承Thread類 class MyThread extends Thread { @Override public void run() { System.out.println("輸出mythread"); } } //多線程第二種方式:java單繼承,繼承了其他類,只能實現(xiàn)根類Runnable class MyRunnable implements Runnable { @Override public void run() { System.out.println("輸出沒有runnable"); } } //多線程第三種方式:Callable接口 class MyCallable implements Callable >{ @Override public List
call() throws Exception { List list = new ArrayList<>(); for (int i = 0; i<10; i++){ list.add(i); } return list; } }
2、多線程并發(fā)
線程的常用方法介紹
JAVA多線程之間實現(xiàn)同步+多線程并發(fā)同步解決方案
Synchronized、ReentrantLock(可重入鎖)、ReentrantReadWriteLock(讀寫鎖)
CyclicBarrier、Semaphore、concurrentHashMap和BlockingQueue。
關于“java中JUC多線程的方式有哪些”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。