原创 【LintCode】—— 0-1揹包問題

Backpack 題目描述 在n個物品中挑選若干物品裝入揹包,最多能裝多滿?假設揹包的大小爲m,每個物品的大小爲A[i] 樣例 1: 輸入: [3,4,8,5], backpack size=10 輸出: 9 樣例 2

原创 【計算機網絡】—— 傳輸層協議UDP與TCP

再談端口號 我們之前在 網絡編程套接字 提到過端口號,簡單的來說端口號(Port)表示了一個主機上進行通信的不同的應用程序,端口號的作用主要是區分服務類別和在同一時間進行多個會話 在TCP/IP協議中, 用 “源IP”, “源

原创 【計算機網絡】—— 深入理解HTTP

HTTP協議 認識URI和URL URI稱爲統一資源標識符,URL稱爲統一資源定位符 URI用字符串來標識某一個互聯網的資源,而URL表示資源所處的地址,因此URL是URI的子集 平時我們俗稱的"網址"就是我們現在要認識的UR

原创 【計算機網絡】—— 網絡編程套接字

套接字 理解源IP地址和目的IP地址 我們在 初識計算機網絡 中也提到了源IP地址和目的IP地址,這裏我們再來深入理解一下這個概念 在IP數據包的頭部,有兩個IP地址,一個源IP地址,一個目的IP地址,它代表着這個數據包從哪裏

原创 【計算機網絡】—— HTTP升級爲WebSokect

原文鏈接:https://www.cnblogs.com/shixiuxian/p/8192285.html WebSocket和HTTP 一、WebSocket是HTML5中的協議,支

原创 【項目】—— 基於websocket協議的網頁版羣聊系統

項目簡介 項目技術點 項目前期準備

原创 【Linux】—— 線程池的概念及實現

前面我們介紹了線程相關的所有概念,根據之前的所學的概念,接着我們看一下下面這張圖 線程生命週期,一個線程從生到死的過程 線程池 以上介紹我們可以看出,在一個應用程序中,我們需要多次使用線程,也就意味着,我們需要多次創建並銷燬

原创 【項目】—— 語音小管家Sosuke

項目簡介 藉助圖靈機器人和百度語音識別和合成等第三方平臺和第三方工具 使用C++編寫一個智能AI對話和語音命令執行的語音管理工具 除去交流功能之外還可以執行Linux下相關命令,可執行的命令支持自己配置 項目技術點 C++

原创 【Linux】—— vim下如何批量註釋和反註釋

之前我們在Linux下vim的使用及配置介紹了vim下一些簡單的操作,今天我們來介紹一下一些能讓敲代碼變得更簡便的操作 vim下進行批量註釋和取消註釋 批量註釋 首先我們需要在vim的正常模式下按v進入virtual(可視)模式

原创 【Linux】—— 線程基本概念

Linux線程概念 什麼是線程 在講線程之前我們來看一幅圖,這個我們應該都不陌生,這個就是我們的進程PCB通過頁表+MMU完成虛擬地址到物理地址的映射。 接着我們看一下線程,我們之前提到線程是在進程的程序地址空間中運行的,從下圖

原创 【Linux】—— Linux線程互斥

Linux線程互斥 前面我們在 Linux線程基本概念 介紹了線程基本概念,在Linux線程控制中介紹了線程創建,線程終止,線程等待,線程分離等等概念,今天我們來介紹一下線程互斥的相關概念 線程併發帶來的問題 互斥概念 我們之前在

原创 【Linux】—— 基於信號量的生產者消費者模型

信號量 前面我們在基於阻塞隊列的生產者消費者模型 今天我們來看一下基於信號量的生產者消費者模型,也可以說是基於環形隊列的。 POSIX信號量 POSIX信號量和SystemV信號量作用相同,都是用於同步操作,達到無衝突的訪問共享資

原创 【Linux】—— 基於阻塞隊列的生產消費者模型

在我們介紹今天的內容之前我們先了解一些相關的概念 Linux線程基本概念 Linux線程控制 Linux線程互斥 Linux線程同步 接下來我們進入今天的主題生產者消費者模型 生產者消費者模型 生產者消費者模型概念 321原則

原创 【牛客網】—— 斐波那契數列的變形

斐波那契鳳尾 題目描述 NowCoder號稱自己已經記住了1-100000之間所有的斐波那契數。 爲了考驗他,我們隨便出一個數n,讓他說出第n個斐波那契數。當然,斐波那契數會很大。因此,如果第n個斐波那契數不到6位,則說出該數;否

原创 【Linux】—— Linux線程控制

Linux下線程的控制 創建線程 由於Linux下不可以像創建進程一樣直接用命令創建線程,因此這裏我們得先介紹一下POSLX線程庫 POSLX線程庫 與線程有關的函數構成了一個完整的系列,絕大多數函數的名字都是以 pthre