原创 單例應用程序的實現

 一些程序需要單實例運行,這裏簡單介紹下單實例的實現及相關問題。 首先定義單實例指的是整個操作系統中只運行一個應用程序的實例。當用戶運行應用程序時先檢查系統是否已經啓動該應用程序,若啓動則將自動彈出應用程

原创 確保真正的線程安全——微軟爲什麼不提供線程安全庫

線程安全在高併發情況下是一個非常嚴重的問題。以下代碼在多線程訪問時,會出現問題。我們以List.Add爲例,來說明在多線程訪問下的狀況。以下代碼是List.Add的實現。 public void Add(

原创 TreeView 樹的查找/遍歷

  最近幾個項目用到 TreeView 控件,遍歷/查找 TreeView 樹節點使用較多。每次都寫,多有不便,乾脆寫個相關的類,以後用就方便了。    TreeView 遍歷可分爲“遞歸”和“非遞歸”兩種。遞歸的簡單,但是效率低,佔內存

原创 .net中比較兩幅圖片是否相同

    .net中的GDI+能非常方便的進行圖象處理,但是並未直接提供進行圖片比較的類或者方法,本文的目的是探討如何進行圖片比較。    首先要說明的是,進行比較的兩幅圖片必須具有相同的格式,並且最好是未經壓縮的圖片格式。否則,不能進行完

原创 你必須懂的.NET中Attribute

        作爲一個.NET開發人員,懂Attribute的重要性,用.NET大師Jeffrey Richter的話就是“任何.NET Framework 開發人員都有必要對定製attribute有一個

原创 如何寫健壯的代碼

不管是在面向過程時代,還是在面向對象時代,任何一個功能都是由若干函數協作來實現的。一個函數由輸入、處理和輸出組成。實現這個函數的代碼段都假定了輸入的參數已經滿足了若干規則,在執行這個函數時,函數的代碼會拿到輸入的參數然後執行代理邏輯。下面

原创 淺談.NET下的多線程和並行計算系列文章索引[轉]

淺談.NET下的多線程和並行計算系列文章索引   淺談.NET下的多線程和並行計算(一)前言   淺談.NET下的多線程和並行計算(二)線程基本知識   淺談.NET下的多線程和並行計算(三)線程同步基礎上   淺談.NET下的多線

原创 Mongodb源碼分析--內存文件映射(MMAP)

在Mongodb中,其使用了操作系統底層提供的內存映射機制,即MMAP。MMAP可以把磁盤文件的一部分或全部內容直接映射到內存,這樣文件中的信息 位置就會在內存中有對應的地址空間,這時對文件的讀寫可以直接用指針來做,而不需要read/w

原创 3 Awesome Free Math Programs

http://math-blog.com/2007/06/02/3-awesome-free-math-programs/   Mathematical software can be very expensive. Programs l

原创 幾種經典的Hash算法實現

        哈希算法將任意長度的二進制值映射爲固定長度的較小二進制值,這個小的二進制值稱爲哈希值。哈希值是一段數據唯一且極其緊湊的數值表示形式。如果散列一段明文而且哪怕只更改該段落的一個字母,隨後的哈希都將產生不同的值。要找到散列爲同

原创 C/C++中的函數調用約定

    在C語言中,假設我們有這樣的一個函數:     int function(int a,int b)     調用時只要用result = function(1,2)這樣的方式就可以使用這個函數。但是,當高級語言被編譯成計算機可以識

原创 Conditional Random Fields(CRF)

原文:http://www.inference.phy.cam.ac.uk/hmw26/crf/ 寫的不錯,有空翻譯過來。 This page contains material on, or relating to, conditi

原创 Mongodb源碼分析--更新記錄

 在之前的一篇文章 中,介紹了assembleResponse函數(位於instance.cpp第224行),它會根據op操作枚舉類型來調用相應的crud操作,枚舉類型定義如下:    view plaincopy to clip

原创 歐幾里德算法及其擴展算法

 一、歐幾里德算法1、歐幾里德算法概述:  歐幾里德算法又稱輾轉相除法,用於計算兩個整數a,b的最大公約數。其計算原理依賴於下面的定理:   gcd函數就是用來求(a,b)的最大公約數的。   gcd函數的基本性質:   gcd(a,b)

原创 隨機抽樣一致性算法(RANSAC)

 作者:王先榮    本文翻譯自維基百科,英文原文地址是:http://en.wikipedia.org/wiki/ransac,如果您英語不錯,建議您直接查看原文。    RANSAC是“RANdom S