• <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>
            隨筆-6  評論-2  文章-1  trackbacks-0
              2009年6月12日
            如果明確地引用一個NULL指針,則該引用是無效的
            int *= 0;
            int& y = *x;
            這兩行語句會引起一個段錯誤
            別外返回局部變量的引用也是無效的
            int& getLocalVariable()
            {
                    
            int x;
                    
            return x;
            }


            posted @ 2009-06-12 13:52 L'雙魚 閱讀(163) | 評論 (0)編輯 收藏
              2009年2月4日
            一: 互斥體的概念
             Lockable Concept
            TimedLockable Concept
            SharedLockable Concept
            UpgradeLockable Concept
                互斥體對象可以保護競賽的數據和不同線程間的安全線程同步.線程可以調用互斥體的成員函數lock()來取得互斥體的所有權,unlock()釋放所有權.在Boost::thread中,互斥體可以遞歸使用,允許幾個線程同時擁有互斥體的所有權.
               Lockable 概念
                void lock() //boost::thread_resource_error if an error occurs
                bool try_lock()//boost::thread_resource_error if an error occurs.
                void unlock()
                Lockable的實現類必須提供以上函數.通過調用lock()獲得所有權,unlock()釋放所有權.   
                TimedLockable 概念
             bool timed_lock(boost::system_time  const&  abs_time)
            template
            <typename DurationType> bool timed_lock(DurationType const& rel_time
            //boost::thread_resource_error if an error occurs.
                TimedLockable 概念精練于Lockable 支持超時嘗試獲鎖,TimedLockable 的實現類除了實現Lockable類的成員外,還要實現上面兩個函數.  
                SharedLockable 概念
             void lock_shared()
            bool try_lock_shared()
            bool timed_lock_shared(boost::system_time const& abs_time)
            void unlock_shared()
                SharedLockable 精練于TimedLockable,用于提供共享所有權  
                UpgradeLockable概念
               
             void lock_upgrade()
            void unlock_upgrade()
            void unlock_upgrade_and_lock()
            void unlock_upgrade_and_lock_shared()
            void unlock_and_lock_upgrade()
                UpgradeLockable概念是一個完善SharedLockable概念,可以升級的所有權,以及共同的所有權和獨自擁有。這是一個擴大到多讀 者/單寫模式所提供的SharedLockable概念:一個單一的線程可能升級所有權的同時,其他有共同的所有權。線程所有權可隨時升級, 嘗試擁有獨家所有權。如果沒有其他線程有共同的所有權,升級完成,立即和線程現在獨家擁有,它必須放棄要求解鎖()一樣,如果它被收購,呼吁鎖() 。
             Class template lock_guard

            lock_guard(Lockable 
            & m)
            lock_guard(Lockable 
            & m,boost::adopt_lock_t)
            ~lock_guard()



            posted @ 2009-02-04 19:56 L'雙魚 閱讀(477) | 評論 (0)編輯 收藏
              2009年1月23日
            拓撲就是研究有形的物體在連續變換下,怎樣還能保持性質不變.

            posted @ 2009-01-23 17:58 L'雙魚 閱讀(176) | 評論 (0)編輯 收藏
              2009年1月22日
            1.
                寄存器
            2. 棧
                位于常規內存區
            3.堆
                多用途內存池(通常為對象)
            4.靜態存儲區
                (非對象數據)
            5.固定存儲
            6.非內存存儲
                (流對象和persistent對象)


            posted @ 2009-01-22 17:12 L'雙魚 閱讀(178) | 評論 (0)編輯 收藏

            "Evil does seek to maintain power by suppressing the truth."

            "Or by misleading the innocent."

              Spock and McCoy, "And The Children Shall Lead", stardate 5029.5.

            歸根結底,所有問題都是列表,或所有問題都是算法

            問題空間的元素同它在空間的表述稱之為對象

            萬物皆對象

            程序就是一組對象,告訴對方該做什么

            每個對象都利用別的對象來組建自己的記憶

            對象都有類型

            所有屬于同一類型的對象都能接受相同的消息

            接口只管你能向這個對象發送什么消息

            實現隱藏能減少程序的bug

            繼承: 復用接口

            在新類中修改基類的行為稱為覆寫

            "只覆寫"基類的行為,稱為替換規則,是(is-a)關系

            在派生類中添加新接口是(is-like-a)關系

            多態替換對象可以降低維護軟件成本和增強設計

            OPP語言采用后綁定的概念.

            動態綁定是JAVA的缺省行為

            interface是abstract的深化




            posted @ 2009-01-22 10:01 L'雙魚 閱讀(161) | 評論 (0)編輯 收藏
            一. 線程啟動
                線程的啟動由傳遞一個沒有構造函數的Callable類,之后復制到內存,由最新的線程調用.
            struct callable
            {
                
            void operator()();
            };
            如果該類必須不可復制,那么可以用boost::ref傳遞一個Callable對象的引用到構造中.
            boost::thread copies_are_safe()
            {
                callable x;
                
            return boost::thread(x); //參數為X的一份拷貝
            // x is destroyed, but the newly-created thread has a copy, so this is OK 
            boost::thread oops()
            {
                callable x;
                
            return boost::thread(boost::ref(x)); //參數為X的引用
            // x is destroyed, but the newly-created thread still has a reference
              
            // this leads to undefined behaviour
            線程可以用一個函數或callable對象為參數構造,用boost::bind來實現
            void find_the_question(int the_answer);

            boost::thread deep_thought_2(boost::bind(find_the_question,
            42));
            void print();
            boost::thread t=boost::thread(&print);

            二.線程接合與脫離
            當被銷毀時,線程稱為脫離(detached),當線程為脫離(detached)時,線程繼續執行直到構造函數中函數或callable對象執行完畢,或程式終止.
            void print();
            boost::thread t(
            &print);
            t.join();
            //線程銷毀
            t.join();//線程已經失效,t不指向任何線程,無作用
            std::cout<<boolalpha<<t.joinable()<<std::endl;//print false statement

            線程的脫離可以明確調用boost::detach()函數,這種情況下線程為非現脫離線程(now-detached thread),變為非線程(Not-a-Thread).
            boost::thread::join() //如果線程為中斷(interrupted),引發boost::thread_interrupted異常.
            boost::thread::detach() //不引發異常,如果線程不脫離,線程析構時調用.



            posted @ 2009-01-22 10:01 L'雙魚 閱讀(1963) | 評論 (0)編輯 收藏
            僅列出標題  
            国产精品久久久久9999| 欧美日韩精品久久久免费观看| 亚洲精品无码久久一线| 久久久久亚洲AV无码网站| 精品久久香蕉国产线看观看亚洲 | 精品国产乱码久久久久久1区2区 | 欧美成人免费观看久久| 亚洲AV无码久久| 久久婷婷五月综合成人D啪| 思思久久精品在热线热| 久久免费视频观看| 狠狠精品久久久无码中文字幕| 久久美女人爽女人爽| 久久天天躁狠狠躁夜夜2020一| 久久中文娱乐网| 国产麻豆精品久久一二三| 2021国内久久精品| 久久综合伊人77777麻豆| 久久国产免费观看精品| 亚洲国产精品久久久天堂| 少妇熟女久久综合网色欲| 国产精品狼人久久久久影院 | 久久精品无码一区二区三区免费| 亚洲人成网亚洲欧洲无码久久 | 亚洲va久久久噜噜噜久久| 欧美粉嫩小泬久久久久久久| 999久久久免费精品国产| 亚洲欧美日韩中文久久 | 亚洲国产成人久久综合一| 久久久久久午夜成人影院| 蜜桃麻豆WWW久久囤产精品| 亚洲日韩欧美一区久久久久我 | 久久91这里精品国产2020| 久久久久久狠狠丁香| 91精品观看91久久久久久 | 国内精品久久久久久久影视麻豆| 99精品久久精品一区二区| 狠狠色丁香久久综合五月| 久久99国产精品99久久| 国内精品久久久久| 99久久www免费人成精品|