c语言sleep函数只能控制整个程序延时么?能不能只控制其中一个函数延时,主程序照常进行下去?
2条回答 默认 最新
- _GX_ 2022-02-09 23:49关注
当然可以,让那个函数在一个单独的子线程里执行就可以了
下面是一个c++的例子
#include <iostream> #include <thread> #include <chrono> #include <mutex> using namespace std; mutex out_mutex; void f1() { for (int i = 0; i < 5; i++) { { lock_guard<mutex> lock(out_mutex); cout << "f1(): i=" << i << endl; } this_thread::sleep_for(chrono::milliseconds(10)); } } void f2() { for (int i = 0; i < 5; i++) { { lock_guard<mutex> lock(out_mutex); cout << "f2(): i=" << i << endl; } this_thread::sleep_for(chrono::milliseconds(10)); } } int main() { thread t1(f1); thread t2(f2); for (int i = 0; i < 5; i++) { { lock_guard<mutex> lock(out_mutex); cout << "main(): i=" << i << endl; } this_thread::sleep_for(chrono::milliseconds(10)); } t1.join(); t2.join(); return 0; }
$ g++ -Wall main.cpp $ ./a.out main(): i=0 f2(): i=0 f1(): i=0 main(): i=1 f2(): i=1 f1(): i=1 f2(): i=2 f1(): i=2 main(): i=2 main(): i=3 f2(): i=3 f1(): i=3 main(): i=4 f1(): i=4 f2(): i=4
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 Centos7 / PETGEM
- ¥15 csmar数据进行spss描述性统计分析
- ¥15 各位请问平行检验趋势图这样要怎么调整?说标准差差异太大了
- ¥15 delphi webbrowser组件网页下拉菜单自动选择问题
- ¥15 wpf界面一直接收PLC给过来的信号,导致UI界面操作起来会卡顿
- ¥15 init i2c:2 freq:100000[MAIXPY]: find ov2640[MAIXPY]: find ov sensor是main文件哪里有问题吗
- ¥15 运动想象脑电信号数据集.vhdr
- ¥15 三因素重复测量数据R语句编写,不存在交互作用
- ¥15 微信会员卡等级和折扣规则
- ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗