原创 C#線程池ThreadPool

相關概念:     線程池可以看做容納線程的容器;     一個應用程序最多只能有一個線程池;     ThreadPool靜態類通過QueueUserWorkItem()方法將工作函數排入線程池;     每排入一個工作函數,

原创 回溯法——八皇后問題

回溯法的基本做法是搜索,或是一種組織得井井有條的,能避免不必要搜索的窮舉式搜索法。這種方法適用於解一些組合數相當大的問題。 回溯法在問題的解空間樹中,按深度優先策略,從根結點出發搜索解空間樹。算法搜索至解空間樹的任意一點時,先判斷該結

原创 hexo安裝教程

由於習慣了StackEdit的markdown,而Jekyll的markdown不知道爲什麼開了GFM卻不是全部插件都能用的感覺,然後又考慮到Jekyll渲染很花時間。正好又看到了Hexo,於是就把github pages轉Hexo了(

原创 最長公共子序列

一個字符串S,去掉零個或者多個元素所剩下的子串稱爲S的子序列。最長公共子序列就是尋找兩個給定序列的子序列,該子序列在兩個序列中以相同的順序出現,但是不必要是連續的。 例如序列X=ABCBDAB,Y=BDCABA。序列BCA是X和Y的一

原创 常見排序算法小結

 排序算法經過了很長時間的演變,產生了很多種不同的方法。對於初學者來說,對它們進行整理便於理解記憶顯得很重要。每種算法都有它特定的使用場合,很難通用。因此,我們很有必要對所有常見的排序算法進行歸納。      我不喜歡死記硬背,我更偏向

原创 C#類,類成員訪問修飾符

今天想不起C#中類的默認訪問修飾符是internal了還以爲是public呢,單元測試時候一直是黃色敬告。所以把csdn的東西翻出了(在百度上搜不到的)。當用internal修飾類(c#默認不加修飾符就是internal)可能會出現問題:

原创 動態規劃——最長公共子序列總結

子序列 sub sequence問題,例:最長公共子序列,[LeetCode] Distinct Subsequences(求子序列個數) 子序列和子字符串或者連續子集的不同之處在於,子序列不需要是原序列上連續的值。 對於子序列的題

原创 “米粉節”背後的故事——小米網搶購系統開發實踐

摘要:今年4月的“米粉節”對小米網來說意義非凡,是其徹底重構後迎來的一次全面壓力測試,涉及網站前端、後臺系統、倉儲物流、售後等各環節。高併發的負載能力、穩定性、準確性等已不是問題,靈活性與可運營性成爲關鍵。 2014年的米粉節 20

原创 內存映射文件機制處理大文件

先說結論:使用內存映射文件來處理大文件可以提高效率。  爲什麼呢? 我們先來看看如果不使用內存映射文件的處理流程是怎樣的,首先我們得先讀出磁盤文件的內容到內存中,然後修改,最後回寫到磁盤上。第一步讀磁盤文件是要經過一次系統調用的,它

原创 索引分裂

問題背景 今天,看到Twitter的DBA團隊發佈了其最新的MySQL分支:Changes in Twitter MySQL 5.5.28.t9,此分支最重要的一個改進,就是修復了MySQL 的Bug #67718:InnoDB

原创 mysql前綴索引

mysql前綴索引   建立前綴索引的例子:# 語法 ALTER TABLE table_name ADD KEY(column_name(prefix_length)); # 示例 ALTER TABLE city ADD K

原创 C++實現線程池

本文介紹的線程池採用C++語言,在windows平臺下實現。此版本爲Version 1.0,以後還會推出功能更完備的後續版本。本着技術分享的精神寫作本文同時公佈源代碼。歡迎大家指出該線程池存在的問題並對當前性能進行討論。      

原创 多態和虛表

多態 多態的這個概念稍微有點模糊,如果想在一開始就想用清晰用語言描述它,讓讀者能夠明白,似乎不太現實,所以我們先看如下代碼: //例程1  #include <iostream>      using namespace std;    

原创 理解MySQL——索引與優化

B+樹是一種經典的數據結構,由平衡樹和二叉查找樹結合產生,它是爲磁盤或其它直接存取輔助設備而設計的一種平衡查找樹,在B+樹中,所有的記錄節點都是按鍵值大小順序存放在同一層的葉節點中,葉節點間用指針相連,構成雙向循環鏈表,非葉節點(根

原创 [NoSQL] 海量數據解決思路之Hash算法

一、概述       本文將粗略講述一下Hash算法的概念特性,裏邊會結合 分佈式系統負載均衡  實例對Hash的一致性做深入探討。另外,探討一下Hash算法在海量數據處理方案中的通用性。最後,從源代碼出發,具體分析一下Hash算法在Ma