摘要:最近面試問的比較多的問題就是這一塊了,有些也答出來了,有些答的不好,最近這段時間開始深入了解一些這方面的東西,也想總結一下。
最近面試問的比較多的問題就是IO這一塊了,有些也答出來了,有些答的不好,最近這段時間開始深入了解一些這方面的東西,也想總結一下。
前置點
1,用戶空間系統空間
Linux系統會把一個進程分為兩個空間,用戶空間和系統空間,比如我們正常的編碼,操作的都是用戶空間的,那如果我們需要調用系統功能,比如拷貝系統文件,這種就需要調用系統組件,獲取內核服務,完成操作
IO的兩個階段
IO的執行過程中分為兩個階段,等待就緒,執行拷貝
等待就緒:我們知道,我們執行IO操作的時候,數據可能來自別的應用程序或者網絡,如果沒有數據,操作系統是會一直等待的,此時,應用程序可能也會一直等待
執行拷貝:將數據拷貝到應用程序工作區
阻塞與非阻塞,同步與異步
先說同步與非同步,最簡單就是看是否啟動一個線程或者進程來完成IO這件事情,同步IO的時候,系統會停下來等這個做完才能做別的事情,而異步IO就利用多線程的方式,啟動一個新的線程去做這件事情,而自己就可以去干別的事情等待通知
再說阻塞與非阻塞吧,這兩個其實關注的是程序在等待調用結果的時候的狀態,阻塞是指,你在獲取這個結果的時候,你會一直掛起,直到等到完整結果之后你才會繼續執行,非阻塞是指,在該進程不能獲取結果的時候,沒有阻塞線程,這個有點繞,有一個通俗的解釋,如果是阻塞的,我要獲取這個東西,獲取過程中,我就失去了CPU,等到結果之后我才會獲取CPU,但是如果我是非阻塞,我就繼續持有CPU,我還可以一直檢查
幾種IO模型
目前比較多的就是5種
阻塞IO
最傳統的一種IO,即讀寫會發生阻塞現象的
非阻塞IO
用戶發起read的時候,并不會失去CPU,會一直check,如果沒有成功,會返回一個error,如果收到成功信號,就會發起read操作,獲取完整結果
多路復用IO
這個就是Java NIO的核心了,會有一個線程管理多個socket的狀態,檢查是否有準備好的,只有發現真正準備好,才會調用cpu執行IO操作,這塊是比較重要的
信號驅動IO
用的少,忽略
異步IO
起一個線程去執行吧
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/69488.html
摘要:可簡單地認為它是的擴展,負載均衡自然成為不可或缺的特性。是基于開發的服務代理組件,在使用場景中,它與和整合,打造具備服務動態更新和負載均衡能力的服務網關。類似的特性在項目也有體現,它是另一種高性能代理的方案,提供服務發現健康和負載均衡。 摘要: Cloud Native 應用架構隨著云技術的發展受到業界特別重視和關注,尤其是 CNCF(Cloud Native Computing Fo...
摘要:同步信號驅動在快遞柜上寫上自己的手機號回調函數,當快遞送過來的時候直接給我打電話執行回調函數,然后我去取快遞。 IO模型 對于IO,我們經常可以聽到諸如同步阻塞IO,同步非阻塞IO,異步IO等等,那么什么是異步/同步,什么是阻塞/非阻塞?首先一次IO在UNIX系統中分為兩個步驟 1.發起IO請求:用戶線程向操作系統內核發起IO請求 2.執行IO操作:當內核準備好數據可以提交給發起IO請...
摘要:可簡單地認為它是的擴展,負載均衡自然成為不可或缺的特性。類似的特性在項目也有體現,它是另一種高性能代理的方案,提供服務發現健康和負載均衡。 Dubbo Cloud Native 實踐與思考 分享簡介 Cloud Native 應用架構隨著云技術的發展受到業界特別重視和關注,尤其是 CNCF(Cloud Native Computing Foundation)項目蓬勃發展之際。Dubbo...
摘要:直到有一天你會碰到線上奇奇怪怪的問題,如線程執行一個任務遲遲沒有返回,應用假死。正好這次借助之前的一次生產問題來聊聊如何排查和解決問題。本地模擬上文介紹的是線程相關問題,現在來分析下內存的問題。盡可能的減少多線程競爭鎖。 showImg(https://segmentfault.com/img/remote/1460000015568421?w=2048&h=1150); 前言 之前或...
摘要:排序算法和集合工具類排序算法和集合工具類。面試官總是問排序算法也不是在難為你,而是在考察你的編程功底。你首先要理解多線程不僅僅是和那么簡單,整個并發包下面的工具都是在為多線程服務。 去年的這個時候樓主通過兩個月的復習拿到了阿里巴巴的 offer,有一些運氣,也有一些心得,借著跳槽季來臨特此分享出來。簡單梳理一下我的復習思路,同時也希望和大家一起交流討論,一起學習,如果不對之處歡迎指正一...
閱讀 1698·2023-04-26 01:02
閱讀 4841·2021-11-24 09:39
閱讀 1803·2019-08-30 15:44
閱讀 2874·2019-08-30 11:10
閱讀 1783·2019-08-30 10:49
閱讀 984·2019-08-29 17:06
閱讀 609·2019-08-29 16:15
閱讀 902·2019-08-29 15:17