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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

多线程概念

發布時間:2024/4/15 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 多线程概念 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

概念

多線程:是指從軟件或者硬件上實現多個線程并發執行的技術,多線程包括軟件多線程和硬件多線程。

軟件多線程:即便處理器只能運行一個線程,操作系統也可以通過快速的在不同線程之間進行切換,由于時間間隔很小,來給用戶造成一種多個線程同時運行的假象。

進程:是指計算機中已運行的程序.

并行:并列運行,多個CPU下支持

并發:多個任務請求運行,CPU輪流交替運行

進程和線程區別:一個應用程序啟動一個進程,一個進程可以有多個線程

多線程優點:程序運行速度快、執行程序可以后臺運行、提高響應效果

多線程缺點:多線程共享堆內存和方法區(存在線程安全的問題)棧內存不共享,啟動多線程暉占用更多內存(資源消耗增多)

線程池:面向對象編程中,創建和銷毀對象是很費時間的,因為創建一個對象要獲取內存資源或者其它更多資源。線程池維護著多個線程,等待著監督管理者分配可并發執行的任務。這避免了在處理短時間任務時創建與銷毀線程的代價。

線程池的創建方式

§? Executors.newFixedThreadPool(int nThreads);

通過傳入的int類型參數來指定創建線程池中的線程數,如果任務數量大于線程數量,則任務會進行等待。

§? Executors.newCachedThreadPool();

會根據需要創建新線程的線程池,如果線程池中的線程數量小于任務數時,會創建新的線程,線程池中的線程最大數量是Integer.MAX_VALUEint類型的最大值。如果線程的處理速度小于任務的提交速度時,會不斷創建新的線程來執行任務,這樣有可能會因為創建過多線程而耗盡CPU 和內存資源。

§? Executors.newFixedThreadPool(int nThreads);
通過傳入的int類型參數來指定創建線程池中的線程數,如果任務數量大于線程數量,則任務會進行等待。

§? Executors.newCachedThreadPool();
會根據需要創建新線程的線程池,如果線程池中的線程數量小于任務數時,會創建新的線程,線程池中的線程最大數量是Integer.MAX_VALUEint類型的最大值。如果線程的處理速度小于任務的提交速度時,會不斷創建新的線程來執行任務,這樣有可能會因為創建過多線程而耗盡CPU 和內存資源。

?

原子性:即一個操作或多個操作執行過程中不會被任何因素打斷

例如:

1 int x = 1;//原子性 2 int y = x;//讀取x,賦值y,非原子性 3 x++;//讀取x,自增1,非原子性 4 x = x + 1;//讀取x,加1,非原子性

?

轉載于:https://www.cnblogs.com/feichangnice/p/10647595.html

總結

以上是生活随笔為你收集整理的多线程概念的全部內容,希望文章能夠幫你解決所遇到的問題。

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