原创 Python中的sys模塊和os模塊

sys模塊 大多屬性描述程序的執行環境,是python中十分重要的基礎模塊 sys.argv:命令行參數,它是一個列表,不存在argc for i in sys.argv: print i 運行結果:

原创 聊聊golang中的panic和defer

聊聊golang中的panic和defer 當數組越界、訪問非法空間或者我們直接調用panic時,panic會停掉當前正在執行的程序,包括所有協程,比起exit直接退出,panic的退出更有秩序,他會他會先處理完當前gorouti

原创 IO多路複用之poll

IO多路複用之poll 前面我們看到了select有很多的缺點,這裏我們再來認識一下poll: 函數原型: 這裏第一個參數中的fds實際上是一個struct pollfd的數組,數組中的每個元素代表一個文件描述符,下面是po

原创 TCP協議的兩個原則

兩大原則———可靠傳輸和提高效率 可靠性: 校驗和 序列號 確認應答 超時重傳 連接管理 流量控制 擁塞控制 提高性能: 滑動窗口 快速重傳 延遲應答 捎帶應答 確認應答(ACK)機制——可靠傳輸的核心 在TCP中,當發

原创 軟件測試---概念篇

軟件測試—概念篇 什麼是軟件測試 概念: 驗證軟件功能是否滿足用戶的需求 測試與調試的區別: 目的不同:測試的任務是發現程序中的缺陷;調試的任務是定位並且解決程序中的問題。 參與角色不同:測試主要是由測試人員和開發人員來執行,

原创 IO多路複用之select

IO多路複用之select 函數原型: #include <sys/select> int select(int nfds,fd_set *readfds,fd_set *writefds, fd_set

原创 網絡基礎---傳輸層

網絡基礎—傳輸層 傳輸層的功能是負責數據從發送端傳輸到接收端,向他上面的應用層提供通信服務,使兩臺主機之間的應用進程互相通信,實現點對點的傳輸。 IP協議能夠把分組送到目的主機,但這個分組還停留在主機的網絡層,未交付給主機的應用進

原创 網絡基礎----應用層

網絡基礎—-應用層 應用層爲應用程序提供服務並規定應用程序中相關細節。 我們所寫的一個個解決實際問題的網絡程序,都是在應用層。 應用層決定了向用戶提供應用服務時通信的活動。 關於協議 協議即是一種“約定”,應用層協議即保證一端

原创 網絡模型

網絡模型 1.網絡發展 獨立模式:計算機之間相互獨立 互聯模式:多臺計算機連接在一起,完成數據共享 局域網LAN:(Local Area Network)一棟大樓或有限的、狹小的區域內網絡,通過交換機和路由器連接在一起。 廣域網

原创 詳解TCP三次握手/四次揮手

詳解TCP三次握手/四次揮手 連接管理機制: 建立連接是可靠傳輸的前提,喚起對方的注意 客戶端與服務器之間沒有明確的界限, 誰先發起請求,誰就是客戶端 三次握手: 三次握手的目的是雙方確認自己與對方能夠正常發送和接收數據,即建

原创 軟件測試---基礎篇

軟件測試—基礎篇 在此之前,關於軟件測試的相關概念軟件測試之概念篇瞭解一下 軟件測試的生命週期 在不同的開發階段,測試人員應該做什麼: 需求階段:分析需求,得到測試需求 計劃階段:根據需求編寫測試計劃 設計階段:搭建測試用例的

原创 Python的模塊和包

模塊 C/C++中的include僅僅是簡單的文本替換,若包含的頭文件中有函數定義,一旦頭文件重複包含,就存在函數重複定義的問題,因此我們在寫頭文件時,都要加上#pragma once爲我們寫代碼帶來不便 1.模塊也是對象 對象

原创 Redis分佈式鎖

Redis的常見使用場景有這麼幾種: 通用緩存 計數器(點擊量、下載量、pv、uv等) 分佈式鎖 這裏我們主要談Redis分佈式鎖的實現。 分佈式鎖主要是爲了解決以下幾個問題: 互斥性:多個機器不能同時獲得鎖,同一時刻只有一

原创 取餘和取模

之前我的認知裏一直以爲取餘和取模是一回事,直到那天他們在討論關於這個,才意識到並不是這樣,這裏進行總結一下。 在數學裏面,我們接觸到的餘數都是大於0的,但在編程中,就會存在有正有負的情況。編程中,這兩種計算的機制不同,Mod採用f

原创 Golang中的nil

之前在學習C/C++時,我們知道有NULL 在C中NULL是一個(void*)的指針,其定義如下: #define NULL ((void *)0) 而在C++中,NULL直接可以和0劃等號,定義: /* Define N