原创 linux線程實現模型

當 Linux 最初開發時,在內核中並不能真正支持線程。但是它的確可以通過 clone() 系統調用將進程作爲可調度的實體。這個調用創建了調用進程(calling process)的一個拷貝,這個拷貝與調用進程共享相同的地址空間。L

原创 linux鎖機制

在Linux內核中,有很多同步機制。比較經典的有原子操作、spin_lock(忙等待的鎖)、mutex(互斥鎖)、semaphore(信號量)等。並且它們幾乎都有對應的rw_XXX(讀寫鎖),以便在能夠區分讀與寫的情況下,讓讀操作相互不

原创 linux 線程

一.輕量級進程LWP     既然稱作輕量級進程,可見其本質仍然是進程,與普通進程相比,LWP與其它進程共享所有(或大部分)邏輯地址空間和系統資源,一個進程可以創建多個LWP,這樣它們共享大部分資源;LWP有它自己的進程標識符,

原创 linux多線程實現機制

一.基礎知識:線程和進程 按照教科書上的定義,進程是資源管理的最小單位,線程是程序執行的最小單位。在操作系統設計上,從進程演化出線程,最主要的目的就是更好的支持SMP以及減小(進程/線程)上下文切換開銷。 無論按照怎樣的分法,一個進

原创 NAT簡介

簡述 基於UDP的P2P應用需要考慮NAT的類型,因爲不同的NAT組合的穿透的方式並不一致,有的能通, 有的不能通。 一般來講, NAT可以分爲四種類型,分別是:   1, 全錐型(Full Cone) 2,  受限錐型(Re

原创 公鑰,私鑰,證書

加密和認證   首先我們需要區分加密和認證這兩個基本概念。   加密是將數據資料加密,使得非法用戶即使取得加密過的資料,也無法獲取正確的資料內容,所以數據加密可以保護數據,防止監聽攻擊。其重點在於數據的安 全性。身份認證是用來判斷某個身份

原创 設計模式教程-開閉原則OCP

  原文地址:http://www.hello-code.com/blog/design/201603/6001.html 1、官方定義 開閉原則,英文縮寫OCP,全稱Open Closed Principle。 原始定義:Softw

原创 公鑰、私鑰、數字簽名、數字證書、對稱與非對稱算法、HTTPS

對公鑰和私鑰有點稀裏糊塗的,搜索了一些資料,作一些整理吧,先看這個: 加密--公鑰 解密--私鑰 簽名--私鑰 驗證--公鑰 看了這個也許會對私鑰用於簽名不解,其實它等同於用私鑰加密,而公鑰驗證就是用公鑰解密,但是不能用於保密信息。因爲公

原创 NPTL (NATIVE POSIX Thread Library)

 POSIX Thread Library (NPTL)使Linux內核可以非常有效的運行使用POSIX線程標準寫的程序。這裏有一個測試數據,在32位機下,NPTL成功啓動100000個線程只用了2秒,而不使用NPTL將需要大約15分鐘左

原创 c++爬蟲大衆點評數據(未完成)

#include <curl/curl.h> #include <iostream> #include <stdio.h> #include <string.h> #include <pcre.h> #define OVECCOUN

原创 c++11 static_assert

在 C++11 標準中,引入了 static_assert 。 static_assert 使用起來非常 點贊 收藏 分享 文章舉報 同皆

原创 c正則表達式匹配換行符

一開始沒有發現html文檔中有很多\n,結果用模式 "(<li class=\"\".+?</li>)" 得到的table間的數據不正確,根據百度百科,可以看到解決方案是 \s 匹配任何空白字符,

原创 linux技術文檔庫

發現了一個linux技術文檔庫,http://www.ibm.com/developerworks/cn/views/linux/libraryview.jsp 點贊 收藏 分享 文章舉報

原创 Centos7上安裝docker

  Docker從1.13版本之後採用時間線的方式作爲版本號,分爲社區版CE和企業版EE。 社區版是免費提供給個人開發者和小型團體使用的,企業版會提供額外的收費服務,比如經過官方測試認證過的基礎設施、容器、插件等。 社區版按照stable

原创 cmake cpp構造項目

1.需求 [1].使用第三方動/靜太庫 [2].本身代碼部分編譯爲動/靜態庫 [3]多項目管理 2.構建一個單獨的項目 [1]目的:這個項目將生成可執行文件,動態和靜態庫。 先在workspace(or anywhere you li