最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++實現(xiàn)延遲的方法詳解

 更新時間:2022年12月27日 10:24:07   作者:woquNOKIA  
這篇文章主要為大家詳細介紹了C++實現(xiàn)延遲的三個方法,文中的示例代碼講解詳細,對我們深入了解C++有一定的幫助,感興趣的小伙伴可以學習一下

1、stl方式

std::this_thread::sleep_for(std::chrono::milliseconds(3000));

或std::this_thread::sleep_for(std::chrono::seconds(3));

(1)std::this_thread::yield (): 線程調(diào)用該方法時,主動讓出 CPU,并且不參與 CPU 的本次調(diào)度,從而讓其他線程有機會運行。在后續(xù)的調(diào)度周期里再參與 CPU 調(diào)度。這是主動放棄 CPU 的方法接口。

(2)std::sleep_for ():線程調(diào)用該方法時,同樣會讓出 CPU,并且休眠一段時間,從而讓其他線程有機會運行。等到休眠結(jié)束時,才參與 CPU 調(diào)度。這也是主動放棄 CPU 的方法。

兩者的不同很明顯,yield () 方法讓出 CPU 的時間是不確定的,并且以 CPU 調(diào)度時間片為單位。而 sleep_for () 讓出 CPU 的時間是固定的。

yield () 的實現(xiàn)依賴于操作系統(tǒng) CPU 調(diào)度策略,在不同的操作系統(tǒng)或者同一個操作系統(tǒng)的不同調(diào)度策略下,表現(xiàn)也可能是不同的。

yield簡單示例如下

#include <iostream>
#include <thread>

int main(){ 
    std::thread thread1([]{
        while (true) {
            std::cout<<"myThread1"<<std::endl;
            std::this_thread::yield();
            
        }
        
    });
    std::thread thread2([]{
        while (true){ 
            std::cout<<"myThread2"<<std::endl;
            std::this_thread::yield();
            
        }
        
    });
    
    if (thread1.joinable())
        thread1.join();
        
    if (thread2.joinable())
        thread2 .join();
        
return 0;
}

2、用boost實現(xiàn), 沒有用過

boost::this_thread::sleep( boost::posix_time::seconds(3) );

boost::this_thread::sleep( boost::posix_time::milliseconds(3000) );

3、sleep

#ifdef _WIN32
#include <windows.h>
#else
#include <unistd.h>
#endif // _WIN32

void sleepcp(int milliseconds) // 跨平臺 sleep 函數(shù)
{
    #ifdef _WIN32
        Sleep(milliseconds);//釋放cp
    #else
        usleep(milliseconds * 1000);
    #endif // _WIN32
}

知識補充

c++中實現(xiàn)sleep的三種方式(跨平臺)

1、stl方式

//by 鳥哥 用stl實現(xiàn)sleep
#include <iostream>
#include <chrono>
#include <thread>
using namespace std;
int main(){
    cout<<"sleep前"<<endl;
    std::this_thread::sleep_for(std::chrono::milliseconds(3000));
    cout<<"sleep后"<<endl;
    
}

運行結(jié)果:

sleep前
sleep后

2、用boost實現(xiàn)

//by 鳥哥 用boost實現(xiàn)sleep
#include <iostream>
#include <boost/thread/thread.hpp>
using namespace std;
int main()
{
    cout<<"sleep前"<<endl;
    
    boost::this_thread::sleep( boost::posix_time::seconds(3) );
    cout<<"3秒后"<<endl;
    boost::this_thread::sleep( boost::posix_time::milliseconds(3000) );
    cout<<"3秒后"<<endl;
    return 0;
}

運行結(jié)果:

sleep前
3秒后
3秒后

3、sleep

//by 鳥哥 實現(xiàn)sleep
#include <iostream>

#ifdef _WIN32
    #include <windows.h>
#else
    #include <unistd.h>
#endif // _WIN32

using namespace std;


void sleepcp(int milliseconds) // 跨平臺 sleep 函數(shù)
{
    #ifdef _WIN32
        Sleep(milliseconds);
    #else
        usleep(milliseconds * 1000);
    #endif // _WIN32
}
int main()
{
    cout << "sleep前" << endl;
    sleepcp(3000);
    cout << "3秒后" << endl;
}

運行結(jié)果:

sleep前
3秒后

到此這篇關(guān)于C++實現(xiàn)延遲的方法詳解的文章就介紹到這了,更多相關(guān)C++延遲內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 淺談const變量賦值報錯分析

    淺談const變量賦值報錯分析

    在類中 只有靜態(tài)變量能賦值 如果你不賦值 編譯器會認為你這個變量根本沒用 不能被修改 又沒有初始值 兩個辦法 在構(gòu)造函數(shù)的初始化列表賦值 或者在const前面加一個static
    2015-07-07
  • 用C語言實現(xiàn)掃雷小程序

    用C語言實現(xiàn)掃雷小程序

    這篇文章主要為大家詳細介紹了用C語言實現(xiàn)掃雷小程序,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • C++文件讀取的4種情況匯總

    C++文件讀取的4種情況匯總

    前幾天要用到C++讀取文本文件,就學習了一下幾種不同的讀取方法,下面這篇文章主要給大家介紹了關(guān)于C++文件讀取的4種情況,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-01-01
  • C語言實現(xiàn)按行讀寫文件

    C語言實現(xiàn)按行讀寫文件

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)按行讀寫文件,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-11-11
  • C語言小項目計時器的實現(xiàn)思路(倒計時+報警提示)

    C語言小項目計時器的實現(xiàn)思路(倒計時+報警提示)

    這篇文章主要介紹了C語言小項目計時器(倒計時+報警提示)的實現(xiàn)思路,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-11-11
  • C++?Boost?Accumulators累加器詳細講解

    C++?Boost?Accumulators累加器詳細講解

    Boost是為C++語言標準庫提供擴展的一些C++程序庫的總稱。Boost庫是一個可移植、提供源代碼的C++庫,作為標準庫的后備,是C++標準化進程的開發(fā)引擎之一,是為C++語言標準庫提供擴展的一些C++程序庫的總稱
    2022-11-11
  • C++中類的默認成員函數(shù)詳解

    C++中類的默認成員函數(shù)詳解

    大家好,本篇文章主要講的是C++中類的默認成員函數(shù)詳解,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01
  • 雙向鏈表插入刪除基本應用介紹

    雙向鏈表插入刪除基本應用介紹

    本文將詳細介紹建立雙向鏈表,實現(xiàn)對雙向鏈表的插入,刪除操作,需要了解的朋友可以參考下
    2012-11-11
  • C語言每日練習之求兩個矩陣的乘積詳解

    C語言每日練習之求兩個矩陣的乘積詳解

    這篇文章主要介紹了如何求兩個矩陣的乘積,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-11-11
  • C++實現(xiàn)四則運算器(無括號)

    C++實現(xiàn)四則運算器(無括號)

    這篇文章主要為大家詳細介紹了C++實現(xiàn)四則運算器,無括號的計算器,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-11-11

最新評論

房产| 高州市| 囊谦县| 隆尧县| 阳山县| 高州市| 娱乐| 醴陵市| 平昌县| 明溪县| 岳西县| 大竹县| 临高县| 原平市| 邵东县| 宾川县| 清流县| 安溪县| 德州市| 贡山| 平潭县| 剑河县| 搜索| 莒南县| 昆山市| 招远市| 慈利县| 文成县| 海丰县| 乐至县| 辽阳市| 鄂托克旗| 普兰县| 玛沁县| 九寨沟县| 高邮市| 葫芦岛市| 长泰县| 灯塔市| 贵定县| 金塔县|