同步、異步、多線程

1、首先明確一點,對于單核CPU,任意一個時刻只有一個線程在運行。那么既然這樣,多線程還有什么意義呢? 舉例來說,現在只有一個人,要做好幾個任務。單線程就是,任務一個一個地做,必須做完一個任務后,再去做另一個任務。多線程就是一會做這個任務,一會做那個任務,每個任務做一會,不停的切換。顯然,最后把所有的任務做完,多線程必定比單線程更耗費時間。為什么?因為,多線程要在不同的任務之間切換,切換肯定是要耗費時間的。那么問題來了,既然多線程比單線程更耗費時間,為什么還要多線程? 單線程有一個致命的問題,就是一個線程運行的整個過程中,其他線程必須等待,不能響應用戶的命令,用戶體驗太差,好像電腦死機一樣。假如單線程,你能想象一下,用戶在聽歌的時候不能寫文檔,這種體驗也太差了。多線程的時候,單核CPU一會做這個任務,一會做那個任務,切換的時間是毫秒級的,用戶完全感覺不出來。從而給用戶照成錯覺,感覺這些任務并行的運行。

2、同步的使用場景:多個線程同時訪問一塊數據,也叫共享區。對于多個線程同時訪問一塊數據的時候,必須使用同步,否則可能會出現不安全的情況。比如數據庫中的臟讀。但是,多個線程同時訪問一塊數據,有一種情況不需要同步技術,那就是原子操作,也就是說操作系統在底層保證了操作要么全部做完,要么不做。

3、異步的使用場景:只有一個線程訪問當前的數據。比如,觀察者模式,沒有共享區,主題發生變化,通知觀察者更新,主題繼續做自己的事情,不需要等待觀察者更新完成后再工作。

轉載于:https://www.cnblogs.com/nzbbody/archive/2012/09/06/2673127.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/386217.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/386217.shtml
英文地址,請注明出處:http://en.pswp.cn/news/386217.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

阿里P8親自教你!熬夜整理華為最新Java筆試題

前言 Mysql的鎖機制確實非常重要,所以在這里做一個全面的總結整理,便于以后的查閱,也分享給大家。 Mysql的鎖機制還是有點難理解的,所以這篇文章采用圖文結合的方式講解難點,幫助大家理解,講解的主要內容…

JSP基礎筆記

/** #####這部分也是筆記,用于記錄JSP的相關內容* ###怎么用JSP###指令的寫法* <% 指令名字%>* *### page指令 * language > 表明jsp頁面中可以寫java代碼 * contentType > 其實即使說這個文件是什么類型&#xff0c;告訴瀏覽器我是什么內容類型&#xff0c;以及使…

阿里P8親自講解!javawhile循環語句用法

前言 作為一個已經畢業的計算機專業學長&#xff0c;其實幾年大學走來還是挺感慨萬千的。&#xff08;說明一下&#xff1a;一本&#xff0c;非958、211&#xff09; 老實說&#xff0c;上大學之前填志愿選專業的時候沒有任何打算&#xff0c;就覺得學海熬到頭了&#xff0c;向…

Cookie,Session基礎知識

//這部分主要是CookieSession的筆記部分/** //獲取來訪的客戶端類型String clientTyereq.getHeader("User-Agent");//如果是火狐瀏覽器&#xff0c;那么使用以下代碼if(clientTye.contains("Firefox")){fileNameDownLoadUtil.base64EncodeFileName(fileNam…

阿里P8親自講解!java中級開發工程師需要掌握的技能

前言 關于技術人如何成長的問題&#xff0c;一直以來都備受關注&#xff0c;因為程序員職業發展很快&#xff0c;即使是相同起點的人&#xff0c;經過幾年的工作或學習&#xff0c;會迅速拉開極大的差距&#xff0c;所以技術人保持學習&#xff0c;提升自己&#xff0c;才能夠…

隨筆--互聯網進化論

不聞不若聞之&#xff1b;有的人士的理論引起了轟動&#xff0c;吾等小網民也來學學&#xff0c;沒那么大腦袋&#xff0c;從不敢談解讀與批判。聞香而來&#xff0c;放屁而去。比如說互聯網進化論。看看實踐&#xff0c;互聯網的膨脹式發展是不會停的&#xff0c;在中國的互聯…

阿里P8親自講解!java分布式需要學什么技術

引言 最近項目上線的頻率頗高&#xff0c;連著幾天加班熬夜&#xff0c;身體有點吃不消精神也有些萎靡&#xff0c;無奈業務方催的緊&#xff0c;工期就在眼前只能硬著頭皮上了。腦子渾渾噩噩的時候&#xff0c;寫的就不能叫代碼&#xff0c;可以直接叫做Bug。我就熬夜寫了一個…

Javascript的this用法

出自&#xff1a;http://www.ruanyifeng.com/blog/2010/04/using_this_keyword_in_javascript.html this是Javascript語言的一個關鍵字。 它代表函數運行時&#xff0c;自動生成的一個內部對象&#xff0c;只能在函數內部使用。比如&#xff0c; function test(){ this.x 1; }…

[New Portal]Windows Azure Web Site (4) Web Site Gallery

《Windows Azure Platform 系列文章目錄》 前言&#xff1a;最近因為工作變動&#xff0c;更新博客的速度變慢了。筆者在這邊感到非常抱歉&#xff0c;以后盡量每周更新一篇Windows Azure的博客給大家。 好了&#xff0c;我們回到本章內容。 Windows Azure通過Web Role和Worker…

阿里P8親自講解!java聲明類的語法格式

前言 前兩天&#xff0c;我收到了螞蟻金服的offer&#xff0c;從朋友的內推開始面試到拿到最后offer經歷了4面技術、一面交叉面和一面HR面。經過了漫長的等待和幾次幾乎折磨的面試之后&#xff0c;終于拿到了offer。 分享第一份Java基礎-中級-高級面試集合 Java基礎&#xff…

java-transaction事件

/*########事務&數據庫連接池&DBUtils ######事務 > Transaction 其實指的一組操作&#xff0c;里面包含許多個單一的邏輯。只要有一個邏輯沒有執行成功&#xff0c;那么都算失敗。 所有的數據都回歸到最初的狀態(回滾) ####為什么要有事務?> 為了確保邏輯的成功…

阿里P8親自講解!java實例變量和類變量

前言 Spring如何解決的循環依賴&#xff0c;是近兩年流行起來的一道Java面試題。其實筆者本人對這類框架源碼題還是持一定的懷疑態度的。如果筆者作為面試官&#xff0c;可能會問一些諸如“如果注入的屬性為null&#xff0c;你會從哪幾個方向去排查”這些場景題。那么既然寫了…

java---連接池的學習

/** ####################################數據庫的連接池學習################################# * * * #####數據庫連接池 >1. 數據庫的連接對象創建工作&#xff0c;比較消耗性能。 >2.一開始現在內存中開辟一塊空間&#xff08;集合&#xff09; &#xff0c; 一開…

阿里P8親自講解!成功入職頭條月薪35K

前言 又到一年金九銀十之際。 Java作為目前用戶最多&#xff0c;使用范圍最廣的軟件開發技術之一。 Java的技術體系主要由支撐Java程序運行的虛擬機&#xff0c;提供各開發領域接口支持的Java,Java編程語言及許多第三方Jvav框架構成。 其中&#xff0c;以Java的虛擬器為今天的著…

java----連接池C3p0使用的補充

C3p0數據庫的連接方式是目前市場場最為廣泛的類型之一 本篇主要你演示C3p0使用文件配置和不使用文件配置的兩種操作方式 #######使用文件配置 import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException;import com.dbutil.zyz.ConnLink; …

阿里P8大佬親自教你!java程序設計第四版pdf

前言 最近有很多朋友去目前主流的大型互聯網公司面試&#xff08;阿里巴巴、京東、字節跳動、螞蟻金服、滴滴&#xff09;&#xff0c;面試回來之后會發給我一些面試題。有些朋友輕松過關&#xff0c;拿到offer&#xff0c;但是有一些是來詢問我答案的。 我特意整理了一下&am…

阿里P8大佬親自講解!朝陽java培訓

開頭 Spring框架自誕生以來一直備受開發者青睞&#xff0c;有人親切的稱之為&#xff1a;Spring 全家桶。Spring更是避免了重復造輪子的工作并跟隨著互聯網行業的發展做出不斷的更新&#xff0c;很多研發人員把spring看作心目中最好的Java項目&#xff0c;沒有之一。 **可以毫…

分隔符的作用和用法

一、插入分頁符 當文本或圖形等內容填滿一頁時&#xff0c;Word會插入一個自動分頁符并開始新的一頁。如果要在某個特定位置強制分頁&#xff0c;可插入“手動”分頁符&#xff0c;這樣可以確保章節標題總在新的一頁開始。首先&#xff0c;將插入點置于要插入分頁符的位置&…

java----DBUtils知識點補充

dbutils 只是幫我們簡化了CRUD 的代碼&#xff0c; 但是連接的創建以及獲取工作。 不在他的考慮范圍 QueryRunner主要是這個類 import java.sql.SQLException;import org.apache.commons.dbutils.QueryRunner;import com.mchange.v2.c3p0.ComboPooledDataSource;public class D…

大廠offer手到擒來,Java面試真題精選

前言 事務我們都知道是什么&#xff0c;而Spring事務就是在數據庫之上利用AOP提供聲明式事務和編程式事務幫助我們簡化開發&#xff0c;解耦業務邏輯和系統邏輯。但是Spring事務原理是怎樣&#xff1f;事務在方法間是如何傳播的&#xff1f;為什么有時候事務會失效&#xff1f…