原创 單例應用程序的實現
一些程序需要單實例運行,這裏簡單介紹下單實例的實現及相關問題。 首先定義單實例指的是整個操作系統中只運行一個應用程序的實例。當用戶運行應用程序時先檢查系統是否已經啓動該應用程序,若啓動則將自動彈出應用程
原创 確保真正的線程安全——微軟爲什麼不提供線程安全庫
線程安全在高併發情況下是一個非常嚴重的問題。以下代碼在多線程訪問時,會出現問題。我們以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