日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java的多线程和线程池的使用,你真的清楚了吗?

發布時間:2025/3/19 java 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java的多线程和线程池的使用,你真的清楚了吗? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Java的多線程和線程池的使用

多線程大大提高程序運行效率,我們在開發過程中經常會開啟一個線程來執行一些費時的任務。開啟一個線程有4種方式,在下面的文章我將詳細的去講解。

繼承Thread
繼承Thread去執行任務,確實可以開啟一個線程去執行任務,如果經常的去開啟一些線程,也會導致系統資源的浪費。

public static class Mythread extends Thread{ @Override public void run() { System.out.println("當前線程"+Thread.currentThread().getId()); int i = 10/2; System.out.println("運行結果"+i); } } //調用線程。 public static void main(String[] args) throws ExecutionException, InterruptedException { /**thread執行方式*/ Mythread mythread = new Mythread(); mythread.start();//啟動線程 System.out.println("main--end"); }

實現Runnale接口。

public static class MyRunable implements Runnable { @Override public void run() { System.out.println("當前線程"+Thread.currentThread().getId()); int i = 10/2; System.out.println("運行結果"+i); } }

調用。

/** * runable的啟動方式 */ MyRunable runable = new MyRunable(); new Thread(runable).start(); System.out.println("main--end");

Callable

/** * Callable可以允許有返回值 */ public static class Callale01 implements Callable<Integer> { @Override public Integer call() throws Exception { System.out.println("當前線程"+Thread.currentThread().getId()); int i = 10/2; System.out.println("運行結果"+i); return i; } }

調用。這里需要用callable構建futureTask

/** * callale的啟動方式 */ FutureTask<Integer> futureTask =new FutureTask<>(new Callale01()); //取返回結果。 Integer i = futureTask.get(); new Thread(futureTask).start(); System.out.println("返回結果是:"+i);

線程池
線程池才是我們java開發中,經常用到一種開啟多線程的方式,線程池,自己去管理線程。可以節省系統資源。通常我們會將下面的一些配置寫在一些配置類中

/** * 七大參數 * corePoolSize: 1.核心線程數[一直存在]: 線程池創建好了以后。就準備就緒的線程數量。 * maxinumPoolSize: 2 最大線程數量 * keepaliveTime: 存活時間。空閑線程的最大的等待時間。 * unit 等待時間的單位 * blockingQueue 阻塞隊列。如果任務很多就會放在隊列里面,只要有線程空閑了,就會去隊列里面去取。 * threadFactory :線程的工廠。 * RejectExecutionHandler :如果隊列滿了。按照我們指定的策略。拒絕執行任務。 * */ ThreadPoolExecutor executor = new ThreadPoolExecutor(5,100,10,TimeUnit.SECONDS, new LinkedBlockingQueue<>(100), Executors.defaultThreadFactory(),new ThreadPoolExecutor.AbortPolicy());

常見的4種線程池。
1 newCachedThreadPool()
創建一個可緩存的線程池,如果線程池長度超過了處理的需要,可靈活的回收空閑線程。若無可回收。則創建新線程。

Executors.newCachedThreadPool();

2.newFixedThreadPool(6)
創建一個固定大小的線程池。

3 newScheduledThreadPool()
定時任務的線程池。

4.newSingleThreadExecutor()

Executors.newSingleThreadExecutor();

記得多多支持Remi醬!!

文章來源:https://www.tuicool.com/articles/YNbyayI

總結

以上是生活随笔為你收集整理的Java的多线程和线程池的使用,你真的清楚了吗?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲第一精品网站 | 午夜不卡影院 | 五月婷婷六月婷婷 | 又色又爽又黄无遮挡的免费视频 | 国产精品系列在线播放 | 舔花蒂| av网站免费在线观看 | 欧美亚色 | 人妖和人妖互交性xxxx视频 | 成人禁污污啪啪入口 | 欧美激情精品久久久久久变态 | 放荡闺蜜高h季红豆h | 日韩黄色影视 | 秋霞影院午夜老牛影院 | 国产亚洲精品精品国产亚洲综合 | 一级国产特黄bbbbb | 国产精品美女久久久久久久久 | 国产寡妇亲子伦一区二区三区四区 | 蜜臀精品| 国产在线黄色 | 日本成人一级片 | 欧美久久一区二区三区 | 99精品区| 成人av免费网站 | 久久久久一区 | 日本污视频在线观看 | 卡通动漫精品一区二区三区 | jizz国产| 亚洲精品资源 | 亚洲午夜精品久久久 | 精品国产乱码久久久久久鸭王1 | 成人精品毛片 | 久草福利资源站 | 夜间福利视频 | 老司机一区二区三区 | 欣赏asian国模裸体pics | 福利一二三区 | 欧美激情精品久久 | 成人在线直播 | 国产成人精品一区二区在线观看 | 日本日韩欧美 | 视频福利在线观看 | 国产天堂在线 | 农村末发育av片一区二区 | 国产一级影片 | 日韩黄大片| 朋友的姐姐2在线观看 | 19禁大尺度做爰无遮挡电影 | 91免费在线视频观看 | 午夜福利123 | 特黄视频免费看 | 日本xxxxxxxxx18 | 法国空姐在线观看完整版 | 边吃奶边添下面好爽 | 一道本av| 日韩色图一区 | 国产美女永久免费 | 欧美日本激情 | 色综合一区二区三区 | 手机福利视频 | 妓院一钑片免看黄大片 | 亚洲美女视频在线观看 | 国产一区二区三区精品视频 | 亚洲黄片一区二区 | 欧美日韩一区电影 | 成人里番精品一区二区 | 国产精品刘玥久久一区 | 韩国在线不卡 | 国产精品麻豆一区 | 日本一区三区 | 亚洲人在线 | 日本九九热 | 欧美日韩一区二区三区四区五区六区 | 日韩一区二区免费在线观看 | 日本在线视频一区二区三区 | 日韩欧美激情视频 | 在线观看中文字幕视频 | 谁有毛片网站 | 四虎影酷| 欧美三级午夜理伦三级小说 | 亚洲成年人| 精品一区二区三区在线观看视频 | 韩国一区二区三区在线观看 | 黄色欧美网站 | 经典三级av在线 | 人妻在线一区 | 久草老司机 | 亚洲丁香色 | 亚洲最大的成人网站 | 天堂综合网 | 成年人香蕉视频 | 在线视频www | 精品xxxx| 99热这里只有精品在线观看 | 人妻少妇偷人精品视频 | 亚洲天堂免费观看 | 亚洲高清一区二区三区 | 久久亚洲精品小早川怜子 | 国产91在线观看丝袜 |