• <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指針,則該引用是無(wú)效的
            int *= 0;
            int& y = *x;
            這兩行語(yǔ)句會(huì)引起一個(gè)段錯(cuò)誤
            別外返回局部變量的引用也是無(wú)效的
            int& getLocalVariable()
            {
                    
            int x;
                    
            return x;
            }


            posted @ 2009-06-12 13:52 L'雙魚(yú) 閱讀(169) | 評(píng)論 (0)編輯 收藏
              2009年2月4日
            一: 互斥體的概念
             Lockable Concept
            TimedLockable Concept
            SharedLockable Concept
            UpgradeLockable Concept
                互斥體對(duì)象可以保護(hù)競(jìng)賽的數(shù)據(jù)和不同線程間的安全線程同步.線程可以調(diào)用互斥體的成員函數(shù)lock()來(lái)取得互斥體的所有權(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)類(lèi)必須提供以上函數(shù).通過(guò)調(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)類(lèi)除了實(shí)現(xiàn)Lockable類(lèi)的成員外,還要實(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ò)大到多讀 者/單寫(xiě)模式所提供的SharedLockable概念:一個(gè)單一的線程可能升級(jí)所有權(quán)的同時(shí),其他有共同的所有權(quán)。線程所有權(quán)可隨時(shí)升級(jí), 嘗試擁有獨(dú)家所有權(quán)。如果沒(méi)有其他線程有共同的所有權(quán),升級(jí)完成,立即和線程現(xiàn)在獨(dú)家擁有,它必須放棄要求解鎖()一樣,如果它被收購(gòu),呼吁鎖() 。
             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'雙魚(yú) 閱讀(481) | 評(píng)論 (0)編輯 收藏
              2009年1月23日
            拓?fù)渚褪茄芯坑行蔚奈矬w在連續(xù)變換下,怎樣還能保持性質(zhì)不變.

            posted @ 2009-01-23 17:58 L'雙魚(yú) 閱讀(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'雙魚(yú) 閱讀(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é)底,所有問(wèn)題都是列表,或所有問(wèn)題都是算法

            問(wèn)題空間的元素同它在空間的表述稱(chēng)之為對(duì)象

            萬(wàn)物皆對(duì)象

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

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

            對(duì)象都有類(lèi)型

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

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

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

            繼承: 復(fù)用接口

            在新類(lèi)中修改基類(lèi)的行為稱(chēng)為覆寫(xiě)

            "只覆寫(xiě)"基類(lèi)的行為,稱(chēng)為替換規(guī)則,是(is-a)關(guān)系

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

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

            OPP語(yǔ)言采用后綁定的概念.

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

            interface是abstract的深化




            posted @ 2009-01-22 10:01 L'雙魚(yú) 閱讀(164) | 評(píng)論 (0)編輯 收藏
            一. 線程啟動(dòng)
                線程的啟動(dòng)由傳遞一個(gè)沒(méi)有構(gòu)造函數(shù)的Callable類(lèi),之后復(fù)制到內(nèi)存,由最新的線程調(diào)用.
            struct callable
            {
                
            void operator()();
            };
            如果該類(lèi)必須不可復(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來(lái)實(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)被銷(xiāo)毀時(shí),線程稱(chēng)為脫離(detached),當(dāng)線程為脫離(detached)時(shí),線程繼續(xù)執(zhí)行直到構(gòu)造函數(shù)中函數(shù)或callable對(duì)象執(zhí)行完畢,或程式終止.
            void print();
            boost::thread t(
            &print);
            t.join();
            //線程銷(xiāo)毀
            t.join();//線程已經(jīng)失效,t不指向任何線程,無(wú)作用
            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'雙魚(yú) 閱讀(1968) | 評(píng)論 (0)編輯 收藏
            僅列出標(biāo)題  
            欧美精品福利视频一区二区三区久久久精品| 国产精品美女久久久久| 久久精品黄AA片一区二区三区| 午夜欧美精品久久久久久久 | 97久久精品无码一区二区| 久久精品国产一区| 久久综合色区| 亚洲国产精品无码久久久秋霞2| 久久亚洲欧美国产精品| 欧美一级久久久久久久大| 色婷婷综合久久久中文字幕| 青青青国产成人久久111网站| 亚洲精品无码专区久久久 | 久久夜色精品国产亚洲av| 亚洲AV日韩精品久久久久久| 午夜不卡888久久| AV无码久久久久不卡网站下载| 国产精品成人精品久久久 | 久久久久无码精品国产| 精品欧美一区二区三区久久久 | 亚洲熟妇无码另类久久久| 久久996热精品xxxx| 久久成人国产精品| 久久久久久精品成人免费图片| 免费一级欧美大片久久网| 久久精品国产99国产电影网| 亚洲AV无码久久| 一本色道久久综合狠狠躁篇| 久久亚洲欧洲国产综合| 国产精品久久久久久| 久久久精品人妻一区二区三区蜜桃| 久久青青草原精品国产软件| 国产A级毛片久久久精品毛片| 精品久久一区二区| 99国产欧美精品久久久蜜芽| 久久亚洲美女精品国产精品| 欧美激情一区二区久久久| 色婷婷久久综合中文久久蜜桃av| 亚洲人成无码久久电影网站| 久久亚洲2019中文字幕| 久久久久亚洲AV无码专区桃色|