只有光頭才能變強
本文力求簡單講清每一個知識點,但願你們看完能有所收穫html
使用多線程時,不是多線程能提高程序的執行速度,使用多線程是爲了更好地利用CPU資源!linux
程序在執行時,多線程是CPU經過給每一個線程分配CPU時間片來實現的,時間片是CPU分配給每一個線程執行的時間,因時間片很是短,因此CPU經過不停地切換線程執行。面試
線程不是越多就越好的,由於線程上下文切換是有性能損耗的,在使用多線程的同時須要考慮如何減小上下文切換算法
通常來講有如下幾條經驗shell
協程。在單線程裏實現多任務的調度,並在單線程裏維持多個任務間的切換編程
還能夠考慮咱們的應用是IO密集型的仍是CPU密集型的。緩存
參考資料:安全
或者能夠反過來問:已經有IP地址了,爲何須要MAC地址??在zhihu上還蠻多相似的問題的:服務器
我來簡單總結一下爲何有了MAC(IP)還須要IP(MAC):微信
已經有IP地址了,爲何須要MAC地址??
MAC地址已是惟一了,爲何須要IP地址?
若是有更好的見解,不妨在評論區下留言哦~
參考資料:
TCP 每一個狀態說一下,TIME-WAIT狀態說一下
TCP總共有11個狀態,狀態之間的轉換是這樣的:
流程圖:
下面我簡單總結一下每一個狀態:
CLOSE_WAIT:對方發了一個FIN報文給本身,迴應一個ACK報文給對方。此時進入CLOSE_WAIT狀態。
close()
這個SOCKET併發送FIN報文給對方,即關閉本身到對方這個方向的鏈接2*MSL
TIME_WAIT狀態通常用來處理如下兩個問題:
TIME_WAIT過多怎麼解決?
若是在高併發,多短連接情景下,TIME_WAIT就會過多。
能夠經過調整內核參數解決:vi /etc/sysctl.conf
加入如下內容設置:
咱們能夠知道TIME_WAIT狀態是主動關閉鏈接的一方出現的,咱們不要輕易去使用上邊兩個參數。先看看是否是能夠重用TCP鏈接來儘可能避免這個問題(好比咱們HTTP的KeepAlive)~
參考資料:
TCP是一個可靠的傳輸協議,它要保證全部的數據包均可以到達,這須要重傳機制來支撐。
重傳機制有如下幾種:
滑動窗口能夠說是TCP很是重要的一個知識點。TCP的滑動窗口主要有兩個做用:
簡略滑動窗口示意圖:
詳細滑動窗口示意圖:
#1已收到ack確認的數據
。#2發還沒收到ack的
。#3在窗口中尚未發出的(接收方還有空間)
。#4窗口之外的數據(接收方沒空間)
接受端控制發送端的圖示:
TCP不是一個自私的協議,當擁塞發生的時候,要作自我犧牲。就像交通阻塞同樣,每一個車都應該把路讓出來,而不要再去搶路了
擁塞控制主要是四個算法:
擁塞控制的做用:
擁塞的判斷:
強烈建議閱讀:
參考資料:
unix/linux環境下
殭屍進程:
wait
或waitId
獲取子進程的信息(狀態),子進程的描述符仍在系統中。孤兒進程:
殭屍進程危害:
解決殭屍進程的手段:
參考資料:
首先要知道的是:進程和線程的關注點是不同的:
操做系統進程間通訊的方式有哪些?
信號量(semaphore):信號量是一個計數器,能夠用來控制多個進程對共享資源的訪問。
操做系統線程間通訊的方式有哪些?(能夠直接理解成:線程之間 同步的方式有哪些)
線程間的通訊目的主要是用於線程同步。
參考資料:
擴展閱讀:
操做系統進程調度算法有哪些?
先來先服務算法(FCFS)
短進程/做業優先算法(SJF)
最高響應比優先算法(HRN)
最高優先數算法
基於時間片的輪轉調度算法
最短剩餘時間優先算法
多級反饋排隊算法
參考筆記:
此部分是看別人的博文已經寫得很好了,分享給你們~
ConcurrentHashMap中的擴容是否須要對整個表上鎖?
總結(摘抄)要點:
參考資料:
什麼是一致性Hash算法(原理)?
總結(摘抄)要點:
一致性Hash算法將整個哈希值空間組織成一個虛擬的圓環,好處就是提升容錯性和可擴展性。
參考資料:
MySQL date、datetime和timestamp類型的區別
總結(摘抄)要點:
datetime和timestamp的區別:
參考資料:
判斷一個鏈表是否有環(實際上就是看看有無遍歷到重複的節點),解決方式(3種):
前指針==後指針
的狀況參考資料:
判斷兩個無環鏈表是否相交,解決方式(2種):
將第一個鏈表尾部的next指針指向第二個鏈表,兩個鏈表組成一個鏈表。
判斷兩個有環鏈表是否相交(注:當一個鏈表中有環,一個鏈表中沒有環時,兩個鏈表必不相交):
參考資料:
參考資料:
若是你們有更好的理解方式或者文章有錯誤的地方還請你們不吝在評論區留言,你們互相學習交流~~~
若是想看更多的 原創技術文章,歡迎你們關注個人 微信公衆號:Java3y。Java技術 羣討論:742919422。公衆號還有 海量的視頻資源哦,關注便可免費領取。
可能感興趣的連接: