重慶分公司,新征程啟航
為企業(yè)提供網(wǎng)站建設、域名注冊、服務器等服務
為企業(yè)提供網(wǎng)站建設、域名注冊、服務器等服務
首先,看一下TCP握手簡單描繪過程:
創(chuàng)新互聯(lián)建站是少有的成都網(wǎng)站設計、做網(wǎng)站、營銷型企業(yè)網(wǎng)站、小程序開發(fā)、手機APP,開發(fā)、制作、設計、買友情鏈接、推廣優(yōu)化一站式服務網(wǎng)絡公司,自2013年創(chuàng)立以來,堅持透明化,價格低,無套路經營理念。讓網(wǎng)頁驚喜每一位訪客多年來深受用戶好評
其握手過程原理,就不必說了,有很多詳細文章進行敘述,本文只關注研究重點。
在第三次握手過程中,如果服務器收到ACK,就會與客戶端建立連接,此時內核會把連接從半連接隊列移除,然后創(chuàng)建新的連接,并將其添加到全連接隊列,等待進程調用。
如果服務器繁忙,來不及調用連接導致全連接隊列溢出,服務器就會放棄當前握手連接,發(fā)送RST給客戶端,即connection reset by peer。
在linux平臺上,客戶端在進行高并發(fā)TCP連接處理時,最高并發(fā)數(shù)量都要受系統(tǒng)對用戶單一進程同時打開文件數(shù)量的限制(這是因為系統(tǒng)每個TCP都是SOCKET句柄,每個soker句柄都是一個文件),當打開連接超過限制,就會出現(xiàn)too many open files。
使用下指令查看最大句柄數(shù)量:
增加句柄解決方案
GO語言由Google公司開發(fā),并于2009年開源,對比Java、Python、C等語言,GO尤其擅長并發(fā)編程,性能堪比C語言,開發(fā)效率比肩Python,被譽為21世紀的C語言。GO語言在云計算、大數(shù)據(jù)、微服務、高并發(fā)領域,應用非常廣泛。BAT大廠正在把GO作為新項目開發(fā)的首選語言。
使用go語言的好處: go語言的設計是務實的, go在針對并發(fā)上進行了優(yōu)化, 并且支持大規(guī)模高并發(fā), 又由于單一的碼格式, 相比于其他語言更具有可讀性, 在垃圾回收上比java和Python更有效, 因為他是和程序同時執(zhí)行的.
1. 進程, 線程, 協(xié)程的區(qū)別, 協(xié)程的優(yōu)勢
2. 講一下GMP模型(重點)
3. Go的GC, 混合寫屏障(重點)
4. go的Slice和數(shù)組的區(qū)別, slice的擴容原理(重點)
5. 講一下channel,實現(xiàn)原理(重點)
6. 講一下Go的Map的實現(xiàn)原理, 是否線程安全, 如何實現(xiàn)安全(重點)
7. new 和 make 的區(qū)別
8. 說一下內存逃逸
9. 函數(shù)傳指針和傳值有什么區(qū)別
10. goroutine之間的通信方式
11. 測試是怎么做的(單元測試, 壓力測試)
12. 堆和棧的區(qū)別