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


            posted @ 2009-06-12 13:52 L'雙魚 閱讀(169) | 評(píng)論 (0)編輯 收藏
              2009年2月4日
            一: 互斥體的概念
             Lockable Concept
            TimedLockable Concept
            SharedLockable Concept
            UpgradeLockable Concept
                互斥體對(duì)象可以保護(hù)競賽的數(shù)據(jù)和不同線程間的安全線程同步.線程可以調(diào)用互斥體的成員函數(shù)lock()來取得互斥體的所有權(quán),unlock()釋放所有權(quán).在Boost::thread中,互斥體可以遞歸使用,允許幾個(gè)線程同時(shí)擁有互斥體的所有權(quán).
               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的實(shí)現(xiàn)類必須提供以上函數(shù).通過調(diào)用lock()獲得所有權(quán),unlock()釋放所有權(quán).   
                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 支持超時(shí)嘗試獲鎖,TimedLockable 的實(shí)現(xiàn)類除了實(shí)現(xiàn)Lockable類的成員外,還要實(shí)現(xiàn)上面兩個(gè)函數(shù).  
                SharedLockable 概念
             void lock_shared()
            bool try_lock_shared()
            bool timed_lock_shared(boost::system_time const& abs_time)
            void unlock_shared()
                SharedLockable 精練于TimedLockable,用于提供共享所有權(quán)  
                UpgradeLockable概念
               
             void lock_upgrade()
            void unlock_upgrade()
            void unlock_upgrade_and_lock()
            void unlock_upgrade_and_lock_shared()
            void unlock_and_lock_upgrade()
                UpgradeLockable概念是一個(gè)完善SharedLockable概念,可以升級(jí)的所有權(quán),以及共同的所有權(quán)和獨(dú)自擁有。這是一個(gè)擴(kuò)大到多讀 者/單寫模式所提供的SharedLockable概念:一個(gè)單一的線程可能升級(jí)所有權(quán)的同時(shí),其他有共同的所有權(quán)。線程所有權(quán)可隨時(shí)升級(jí), 嘗試擁有獨(dú)家所有權(quán)。如果沒有其他線程有共同的所有權(quán),升級(jí)完成,立即和線程現(xiàn)在獨(dú)家擁有,它必須放棄要求解鎖()一樣,如果它被收購,呼吁鎖() 。
             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'雙魚 閱讀(481) | 評(píng)論 (0)編輯 收藏
              2009年1月23日
            拓?fù)渚褪茄芯坑行蔚奈矬w在連續(xù)變換下,怎樣還能保持性質(zhì)不變.

            posted @ 2009-01-23 17:58 L'雙魚 閱讀(180) | 評(píng)論 (0)編輯 收藏
              2009年1月22日
            1.
                寄存器
            2. 棧
                位于常規(guī)內(nèi)存區(qū)
            3.堆
                多用途內(nèi)存池(通常為對(duì)象)
            4.靜態(tài)存儲(chǔ)區(qū)
                (非對(duì)象數(shù)據(jù))
            5.固定存儲(chǔ)
            6.非內(nèi)存存儲(chǔ)
                (流對(duì)象和persistent對(duì)象)


            posted @ 2009-01-22 17:12 L'雙魚 閱讀(181) | 評(píng)論 (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.

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

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

            萬物皆對(duì)象

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

            每個(gè)對(duì)象都利用別的對(duì)象來組建自己的記憶

            對(duì)象都有類型

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

            接口只管你能向這個(gè)對(duì)象發(fā)送什么消息

            實(shí)現(xiàn)隱藏能減少程序的bug

            繼承: 復(fù)用接口

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

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

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

            多態(tài)替換對(duì)象可以降低維護(hù)軟件成本和增強(qiáng)設(shè)計(jì)

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

            動(dòng)態(tài)綁定是JAVA的缺省行為

            interface是abstract的深化




            posted @ 2009-01-22 10:01 L'雙魚 閱讀(164) | 評(píng)論 (0)編輯 收藏
            一. 線程啟動(dòng)
                線程的啟動(dòng)由傳遞一個(gè)沒有構(gòu)造函數(shù)的Callable類,之后復(fù)制到內(nèi)存,由最新的線程調(diào)用.
            struct callable
            {
                
            void operator()();
            };
            如果該類必須不可復(fù)制,那么可以用boost::ref傳遞一個(gè)Callable對(duì)象的引用到構(gòu)造中.
            boost::thread copies_are_safe()
            {
                callable x;
                
            return boost::thread(x); //參數(shù)為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)); //參數(shù)為X的引用
            // x is destroyed, but the newly-created thread still has a reference
              
            // this leads to undefined behaviour
            線程可以用一個(gè)函數(shù)或callable對(duì)象為參數(shù)構(gòu)造,用boost::bind來實(shí)現(xiàn)
            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);

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

            線程的脫離可以明確調(diào)用boost::detach()函數(shù),這種情況下線程為非現(xiàn)脫離線程(now-detached thread),變?yōu)榉蔷€程(Not-a-Thread).
            boost::thread::join() //如果線程為中斷(interrupted),引發(fā)boost::thread_interrupted異常.
            boost::thread::detach() //不引發(fā)異常,如果線程不脫離,線程析構(gòu)時(shí)調(diào)用.



            posted @ 2009-01-22 10:01 L'雙魚 閱讀(1968) | 評(píng)論 (0)編輯 收藏
            僅列出標(biāo)題  
            97久久超碰国产精品2021| 久久黄视频| 99久久成人18免费网站| 国产精品成人99久久久久| 久久人人爽人人爽人人片AV东京热 | segui久久国产精品| 久久精品国产亚洲AV不卡| 精品久久久久久中文字幕大豆网| 久久久久久久久无码精品亚洲日韩| 久久久综合九色合综国产| 97精品伊人久久大香线蕉| 久久精品国产亚洲AV无码偷窥| 狠狠色丁香婷婷综合久久来来去| 久久精品国产乱子伦| 国内精品久久久久久久涩爱| 久久久久亚洲AV无码永不| 久久久噜噜噜久久| 久久青青草原精品影院| 伊人久久大香线蕉亚洲| 久久青青草原精品国产软件| 久久不射电影网| 东京热TOKYO综合久久精品 | 久久精品夜夜夜夜夜久久| 女同久久| 久久亚洲AV永久无码精品| 99久久国产亚洲高清观看2024| 久久人人妻人人爽人人爽| 久久久久高潮综合影院| 欧美亚洲日本久久精品| 久久精品一区二区影院| 国产精品免费看久久久香蕉| 日韩乱码人妻无码中文字幕久久| 热99RE久久精品这里都是精品免费 | 国产A级毛片久久久精品毛片| 粉嫩小泬无遮挡久久久久久| 亚洲va久久久噜噜噜久久狠狠 | 91精品国产高清久久久久久91 | 国产精品美女久久久免费| 国产A级毛片久久久精品毛片| 国产精品99久久不卡| 久久久久亚洲精品无码网址|