大型網站架構演變和知識體系)

  (原文出處:http://www.blogjava.net/BlueDavy/archive/2008/09/03/226749.html)    之前也有一些介紹大型網站架構演變的文章,例如LiveJournal的、ebay的,都是非常值得參考的,不過感覺他們講的更多的是每次演變的結果,而沒有很詳細的講為什麼需要做這樣的演變,再加上近來感覺有不少同學都很難明白為什麼一個網站需要那麼複雜的技術,於是有了寫這篇文章的想法,在這篇文章中

使用CAS來實現個單例模式

在學習Java並發編程的時候看到了單例的討論,發現CAS挺適應這個場合的,於是順手寫了個簡單的,實現了延遲執行個體化和多安全執行緒,也算是無鎖的一種用法吧:使用CAS的單例模式實現Code highlighting produced by Actipro CodeHighlighter

對並發/並行編程的總結

1. 並發和並行:一個好的並發演算法未必是一個好的並行演算法2. 並發編程的2個設計要點:安全和效能,在多CPU環境下還要考慮可擴充性3. 安全性:    a. 最常見的方法是要求對象在任意時刻都應該滿足一致的狀態(不變約束)    b. 在某些無阻塞演算法中,允許對象暫時處於不一致狀態,但是應該在運行中檢測並立刻修正它4. 影響安全的因素:原子性、可見度和指令順序5. 滿足安全性的基本策略:    a. 通過對象的不可變性保證對象總是滿足不變約束:一個不變對象是安全執行緒的        a.

Win32環境下IIS5和Tomcat5用JK2整合心得

此文假設已經安裝好了IIS5和Tomcat5.JK2

CLR 2.0 Memory Model

聲明:這篇文章關於記憶體模型的部分主要翻譯自Understand the Impact of Low-Lock Techniques in Multithreaded Apps,此外增加了無鎖編程(即Lock-Free)的內容,發布這篇文章的目的在於為以後描述.NET多線程並發/並行編程做底層基礎。理解記憶體模型對於多線程編程有著莫大的益處,尤其是對於Lock-Freedom。關於Lock-Free的優缺點,可以參考關於無鎖編程。具體的解釋可以參考《Java並發編程實踐》,《Intel

FCL(2) :: CollectionBase & Collection

CollectionBase是一個提供使用者自訂Collection的一個基類.在<<.net設計規範>> 第六章一條 避免在命名基類的時候使用"Base"尾碼,如果該類會用於公用ApI.例如:  CollectionBase Files(){}; 就是違反上述規範. 理由是增加"base"尾碼只會對該方法的使用者造成不必要的幹擾.現在在.net2.0 設計範型的集合基類命名為Collection<T>而非

IE Plug-In (1)

拜讀了張碩(CathyEagle)的Blog的一些文章,終於開竅了,關於拖放的動作捕捉又深入了一層瞭解。經過折騰終於可以捕捉到IE的拖放動作,萬事開頭難,關於CathEagle文章中提到的一些介面的聲明在Delphi中是沒有的,經過尋找,現在將介面的聲明如下。關於拖放,請查閱CathEagle的Internet Explorer 編程簡述 的系列文章。// IDocHostUIHandlerusesWindows, Messages, SysUtils, Variants, Classes,

FCL(3):: ArrayList & List (1)

ArrayList是以前最常用的一個Collection. <<.net設計規範>>第八章一條:  要優先使用集合,而不是優先使用數組. 因ArrayList比Array好用多了:)記得以前面試的時候主考官問我用過ArrayList沒,答:用過;

WinInet 與 winHTTP 共同在代碼檔案中引用會引起編譯錯誤

問題:      WinInet 與 WinHTTP 同為Windows 平台下訪問互連網的API組。WinInet 技術比較老,已經有十餘年歷史了,在某些方面並不完全勝任訪問Internet的工作。於是後來有了winHTTP APIs。 或許是微軟考慮到winHTTP技術可以全面替代WinInet訪問,所以某些結構體、宏被winHTTP.h 檔案進行了重定義。當一個代碼檔案(.cpp 或.inl) 同時包含WinInet.h 和 winHTTP.h 檔案時,將引起編譯錯誤。解決:    

IE Plug-In (2) – Ole Drag

 再次碰到ClipBoard的問題,我記得上次碰到是在做工作流程編輯軟體的時候,要拷貝一個 自己寫的控制項的資訊到剪貼簿,然後粘帖的時候重新構建該控制項。 具體的代碼回家要翻箱子底了。不過從網上看到了 藍色的天空的系列文章(他好像也是轉的,哈哈!)。剛剛看了個開頭。學習中.......OLE Drap/Drop(1) http://blog.csdn.net/lyl_98/archive/2007/02/09/1506519.aspxOLE

“Loads are not reorderd with other loads” is a FACT!! 再續:.NET MM IS BROKEN

上一篇隨筆“"Loads are not reorderd with other loads" is a FACT!! 續:不要指望 volatile”中已經提到了。.NET的記憶體模型在volatile load上的實現是錯誤的。這在今天終於是半個官方的結論了。有關這個討論的結論可以參考“A bit more formalism as to why CLR's MM is broken on x86/x64

NuSoap介紹

文章目錄 2.3.1 soapclient 類的 request 和 response 成員變數 2.3.2 soapclient 類的 debug_str 成員變數 2.3.3 WEB 服務程式提供的調試方法 2.4.1 建立支援 WSDL 的 WEB 服務 2.4.2 通過 WSDL 調用 WEB 服務 2.4.3 代理的使用     

談談多線程編程(一)- 安全性策略

文章目錄 滿足對象的一致性約束的兩類策略

關於無鎖編程

Lock-free 演算法通常比基於鎖的演算法要好:從其定義來看,它們是 wait-free 的,可以確保線程永遠不會阻塞。 狀態轉變是原子性的,以至於在任何點失敗都不會惡化資料結構。 因為線程永遠不會阻塞,所以當同步的細粒度是單一原子寫或比較交換時,它們通常可以帶來更高的輸送量。 在某些情況下,lock-free 演算法會有更少的同步寫操作(比如 Interlocked 操作),因此純粹從效能來看,它可能更便宜。 但是 lock-freedom

用Axis開發Webservice

Axis是Apache的一個開源web service引擎。它目前最為成熟的開源web service引擎之一。下面我主要介紹一下如何使用該Axis開發您的web service 服務。1.安裝以tomcat4.1為伺服器,下面說明如何安裝axis:   1.解壓下載後的包,將包中axis目錄複寫到tomcat目錄下的webapps目錄下;   2.將axis/WEB-INF/lib目錄下類檔案複製到tomcat目錄下的common/lib目錄下;   3.重新啟動tomcat;   4.訪問h

參觀微軟研發集團中關村新辦公樓

      微軟研發集團在中關村西區建設的新辦公樓,已經陸陸續續的啟用了。清華科技園的員工首先入住,這個周末西格瑪大廈的員工也搬入了新的辦公樓。趁著周末逛中關村的機會,我先一步參觀了微軟的新辦公樓。3月份大樓將正式啟用,亞勤也在微博上說,休假之後他就會到新的Office 來上班了。      下面是圖文說明:       新Office

剖析Mozilla代碼之”七武器”

武器一:穿甲彈 Source Insight網站:   http://www.sourceinsight.com/      Source Insight 工具是分析原始碼工程的利器! 有了它,再多的原始碼檔案也不怕,它能協助你像使用Visual Studio 一樣去"go to definition"、"Find References"。Source Insight的文法提示,比IDE做得都帥,有了它可以協助你用最快速度瞭解原始碼檔案、目錄之間的關係。

Delphi:對某些環境變數的檢測

有日子沒有都有動Delphi了,安裝了Delphi2007 For Win32 做了一個安裝程式的東東。主要部分就是檢測系統內容的變數。   1. 作業系統的檢測   2. WindowsInstaller版本的檢測 (要求最低配置3.1)   3. .Net FrameWork 版本的檢測 (最低配置2.0)   4. Office ACE Oledb驅動程式的檢測。 代碼共用如下:  1.作業系統檢測。 function GetOSVersion: string;var  OSVer :

SQLSERVER中動態資料指標的實現

兩種實現方法如下:方法一:CREATE   TABLE   #tabTmp(id   int)    INSERT   #tabTmp   EXECUTE('SELECT   id   FROM   '+@TableName)       declare   curOne   cursor   for      SELECT   id   FROM   #tabTmp    open   curOne    FETCH   NEXT   from   curOne   into     @ID方

從SqlServer的動態sql中傳回值

  這是使用動態Sql的人都會碰到這樣的問題,需要從動態執行的sql中傳回值,下面給一個簡單的實現例子。 IF EXISTS(SELECT * FROM SYSOBJECTS WHERE NAME = 'ValueFromSql')   DROP PROC ValueFromSqlGOcreate proc ValueFromSql as begindeclare @value varchar(100)exec sp_executesql N'select @value=''From Sql''

總頁數: 61357 1 .... 6523 6524 6525 6526 6527 .... 61357 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.