• <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)題  
            香蕉久久AⅤ一区二区三区| 97热久久免费频精品99| 久久久精品波多野结衣| 久久婷婷色综合一区二区| 色偷偷88888欧美精品久久久| 久久国产乱子伦免费精品| 久久这里有精品视频| 久久99国产综合精品| 老司机午夜网站国内精品久久久久久久久 | 久久亚洲精品无码观看不卡| 久久精品亚洲AV久久久无码| 久久最近最新中文字幕大全| 国内精品久久国产| 国内精品久久久久久久coent| 国产精品久久久久蜜芽| 99久久精品国产毛片| 日产精品久久久一区二区| 日韩久久久久中文字幕人妻| avtt天堂网久久精品| 亚洲女久久久噜噜噜熟女| 日韩va亚洲va欧美va久久| 亚洲一区二区三区日本久久九| 77777亚洲午夜久久多人| 一级做a爰片久久毛片免费陪| 国产一区二区三精品久久久无广告 | 国产精品久久久久久福利漫画| 精品久久久久久久久免费影院 | 四虎国产精品成人免费久久| 久久精品成人国产午夜| 99久久超碰中文字幕伊人| 亚洲AV无码1区2区久久| 久久久久亚洲av成人网人人软件| 色99久久久久高潮综合影院| 国内精品久久久久久久coent| 国产成人久久777777| 国产成人久久精品麻豆一区| 99久久国产免费福利| 久久久久亚洲精品中文字幕| 欧美亚洲日本久久精品| 久久人人爽人人爽人人av东京热| 人妻无码αv中文字幕久久琪琪布 人妻无码精品久久亚瑟影视 |