• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            Creative Commons License
            本Blog采用 知識共享署名-非商業性使用-禁止演繹 3.0 Unported許可協議 進行許可。 —— Fox <游戲人生>

            游戲人生

            游戲人生 != ( 人生 == 游戲 )
            站點遷移至:http://www.yulefox.com。請訂閱本博的朋友將RSS修改為http://feeds.feedburner.com/yulefox
            posts - 62, comments - 508, trackbacks - 0, articles - 7

            周記:找回激情

            Posted on 2008-05-11 02:25 Fox 閱讀(1766) 評論(8)  編輯 收藏 引用 所屬分類: T技術碎語

            寫的太雜,實在沒法寫題目,就用這一周的簽名吧,很合現在的心境。

            Kevin眼中的我,大概是個重視理論算法勝過編程實踐的人,而我的算法和理論基礎尚差的出奇(可能這就是知恥而后勇吧:D),可見我的編程實踐又會多么的差了。Bugs更是對我整日沉浸于這些不著邊際的“空中樓閣”頗有微詞,甚至嗤之以鼻。今日若不是要把自己前段時間的豆腐渣粉飾一番,我依然不愿去考慮多線程的具體實現,或者說不是不愿,是不敢,總有一種臨深履薄之感。

            縱然如此,為了更好的完成工作,我還是拉來Kevin,勞他為我講解一下多線程,可能是因為我從未仔細看過boost等C++開源庫的原因吧,我對于結構封裝本身并沒有多少概念。說句實話,看到那些模板我就頭大,心里想:本來一個簡單的東西,為什么要搞的那么復雜呢?當然,我知道,這是因為我對其缺乏了解,在對一樣東西沒有完全理解就妄測其好壞是自卑的表現:D,所以也請Kevin原諒我的無知,順便致謝;-)。

            還是稍微提一下多線程的東西吧,因為這一次改動并不很大,因此只言片語難以面面俱到,也請各位TX不必較真兒。這兒只是說一下我是怎么偷懶把之前沒有使用多線程的I/O部分修改成多線程I/O的,I/O的細節不再詳述,而且這臺機器上面因為沒有VS,僅憑記憶,如果有什么差錯,請幫我指出來了:-)。

            在項目啟動后的初始化中初始化I/O線程:

             1 void SomeApp::Init(void)
             2 {  
             3       // do some other things 
             4 
             5     CIOOperator::Init();  // InitializeCriticalSection for I/O queue(s)
             6 
             7     forint i=0; i<nIOThreadsNum; ++i ) 
             8     { 
             9         CIOOperator *pOpObj = new CIOOperator; 
            10         pOpObj->Create(); 
            11         m_vecIOThreads.push_back(pOpObj); 
            12     } 
            13 
            14       // do some other things 
            15 }


            在項目退出前結束I/O線程: 

             1 void SomeApp::Release(void
             2 {  
             3       // do some other things 
             4 
             5     vector<CIOOperator *>::iterator it = m_vecIOThreads.begin(); 
             6     for( ; i!=m_vecIOThreads.end(); ++it ) 
             7     { 
             8         it->End(); 
             9         delete (*it); 
            10     } 
            11     m_vecIOThreads.clear();
            12 
            13     CIOOperator::Release();  // DeleteCriticalSectionfor I/O queue(s)
            14 
            15       // do some other things 
            16 


            I/O線程函數:  

             1 void ThreadFunc( void *pArgument )
             2 {
             3       // do some other things, like exception handling 
             4 
             5     (CIOOperator *)pArgument->Run();  // operating I/O queue(s) until exit
             6 
             7       // do some other things 
             8 
             9     _endthreadex();
            10 }

            說多線程復雜,無外乎線程的退出策略、同步機制、調試、異常處理等等。多少還是需要一些知識(尤其是同步)和經驗(尤其是調試)。

            再回來說一下最近比較關注的算法吧,雖然為某些人所不齒,甚至公然批評我最近比較松懈,實在令我難堪的緊。我又沒有消極怠工,難道編寫代碼是積極,學習算法就是消極嗎?鄉下來的,且不必理他。當然,多少還是需要注意一下分寸吧。

            在受到上次解決烙餅排序問題的打擊之后,我開始反思:自己思考和解決問題的角度怎么就那么簡單和狹隘?細細想來,從本科畢業之后,幾乎再沒翻過算法的書,幾乎再沒做過算法的題,寫代碼只是為了糊口,只能糊口的代碼自然只能以垃圾形容。意識粗糙,操作離譜,整個一下里巴人。

            在一番深深的自責之后,痛定思痛,痛何如哉,才感覺自己關于算法的思維空間已經局限于if-else、do-while,連窮舉、分治、貪心、回溯這些以前念書時天天掛在嘴邊侃侃而談的常用算法都沒有概念了,遑論動態規劃、最小二乘法、線性回歸等復雜一些的(非)數值算法,關于數據結構的思維空間也已經局限于vector、list、map了,再也沒有回憶過stack、tree、graph這些讀死書、死讀書得來的所謂知識。 

            可悲啊,為什么拿到一個困難一點的問題,就只知道畫圖、編碼,而不知道組織算法呢?甚至連這個問題到底有無多項式時間解都不去考慮。然而,一提誰都知道:算法復雜性——數據結構第0章就會提到的基礎,真正分析起來,卻是力不從心。

            所以,接著掃掃盲吧,實在沒有必要去搞很多艱深的東西,本來想接下來就寫NP難題,可是近來工作上的事情確實有些多,之前一篇已經是被Alex(這家伙卻至今未開張……)“催出來”的了。

            手頭只有MIT英文版的《Introduction to Algorithms》ed.2,于是就從網上找了中文電子版,居然是上個世紀94年南京大學譯的第一版??此惴ǖ脑?,多半是以這本書和Wikipedia為主了。

            PS: 另外做的一點事情,似乎和詞法分析、異常處理等多少有些關聯,內容相當瑣碎,此刻不再贅述。

            對了,和工作、學習并不那么相干的事情就是,今天和幾個同事出去釣了幾個小時魚,收獲嘛,保密:D。

            近期考慮的關鍵詞:無縫世界 網游安全 算法導論 兄弟激情

            Feedback

            # re: 周記:找回激情  回復  更多評論   

            2008-05-11 08:24 by Kevin Lynx
            還是給個評論:

            其實關于程序結構,其實就是我眼中的軟件架構,這種東西的經驗主要還是通過自己寫大程序總結獲得,配合設計模式軟件工程之類的理論,上升得會比較快,尤其是寫個庫出來,更會挑戰自己這方面的能力。簡單的功能封裝并不是一個庫該干的(這話熟悉吧?)當然看其他開源庫也會獲取相關經驗。對于boost我不敢說啥,很大很惶恐,只能單個小庫地仰慕一下。

            自我感覺現在有模板編程的思想,不過這東西,僅能用于基礎模塊的搭建。(我很滿意我的日志類,用Andrei書中的術語就是policy :D和我的multi_list :D---Bugs眼中的過度設計--確實有點過度)

            算法相關問題,我至今覺得那些書上的算法很少能帶給我們直接的實踐機會。可能你至今沒在工作中用到DP吧?不過我從不忽視算法的作用,在我眼中算法是讓人擁有堅實編程基礎的東西。所以有時候解決一個問題的時候,總有點捉襟見肘的感覺。不過想想,沒辦法啊,環境所致。哥們你就忍了吧。

            # re: 周記:找回激情[未登錄]  回復  更多評論   

            2008-05-11 11:06 by snow
            雖然不能理解你的困難,愿意一直支持:)

            # re: 周記:找回激情[未登錄]  回復  更多評論   

            2008-05-12 00:19 by Alex
            #- - fox,請繼續……

            # re: 周記:找回激情  回復  更多評論   

            2008-05-13 03:10 by 陳梓瀚(vczh)
            算法導論中文版沒有翻譯完,得看原版。

            喜歡用STL可能有兩個原因
            1:在你學會數據結構之前就已經學會了STL
            2:你的程序的數據結構不夠復雜

            過早地系統學習C++庫會喪失很多寫程序的機會。過早地寫應用層的程序也會喪失很多寫程序的機會。但是如果不過早學的話,就需要有強大的毅力來讓你忍耐枯燥和挫折,除非你對程序本身有很濃厚的愛。

            # re: 周記:找回激情  回復  更多評論   

            2008-05-13 08:27 by cppexplore
            能得出上面的結論,可能有下面幾個原因:
            1、在學會了數據結構之后,至今還沒學會STL,至少對STL沒有全面的認識
            2、在復雜程序的數據結構面前,不能靈活應用學過的數據結構的精髓:思想
            3、尚未系統的學習c++庫
            4、尚未寫過大型的應用層程序
            5、對哲學沒有深入的思考。看問題片面,主觀性強。

            吾生也有涯,爾知也無涯。共勉!

            # re: 周記:找回激情  回復  更多評論   

            2008-05-15 10:59 by 陳梓瀚(vczh)
            nono,真正的原因是,在學數據結構的時候我構造了一個能夠滿足我開發那些編譯器和虛擬機需要的,代替STL的東西了- -b

            # re: 周記:找回激情  回復  更多評論   

            2008-05-15 17:31 by 買書網
            理論算法和編程實踐都不可或缺。

            # re: 周記:找回激情  回復  更多評論   

            2008-06-05 12:25 by foxtail
            @陳梓瀚(vczh)
            你比較特別餓
            久久人人爽爽爽人久久久| 综合久久精品色| 人妻丰满AV无码久久不卡| 高清免费久久午夜精品| 日韩精品久久久久久| 久久综合精品国产一区二区三区 | 久久国产精品99国产精| 91精品国产综合久久香蕉| 久久久久久国产精品免费免费 | 99精品国产在热久久| 青青草原综合久久大伊人导航| 免费无码国产欧美久久18| 久久综合久久综合久久综合| 欧美亚洲日本久久精品| 精品一区二区久久| 精品国产乱码久久久久久人妻| 国产精品女同一区二区久久| 亚洲国产精品无码成人片久久| 久久精品国产亚洲Aⅴ香蕉| 欧美大香线蕉线伊人久久| 亚洲欧美国产日韩综合久久| 亚洲乱亚洲乱淫久久| 国产精品久久网| 欧美大香线蕉线伊人久久| 亚洲精品无码久久一线| 久久久久久久女国产乱让韩| 久久人人爽人爽人人爽av| 日本免费一区二区久久人人澡 | 久久人人妻人人爽人人爽| 2020久久精品亚洲热综合一本| 久久久久国产视频电影| 久久精品成人欧美大片| 国产综合精品久久亚洲| 久久精品无码一区二区日韩AV | 久久国产色AV免费观看| 国产精品女同久久久久电影院| 色偷偷久久一区二区三区| 久久夜色精品国产网站| 国产亚洲欧美精品久久久| 97热久久免费频精品99| 亚洲国产精品久久久久婷婷老年|