首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏ADAS性能优化

    Usleep timerslack_ns background thread in android

    在android 手机上,如果call usleep(2*1000),结果sleep时间不定,甚至结果sleep了50+ms,是不是有点过分,测试代码如下:各位可以在手机上测试下,特别是把程序放在后台运行的情况下 ) { for(j=0;j<10;j++) { gettimeofday( &oldTime, NULL ); usleep , usleep); __weak_reference(__usleep, _usleep); Key function nanosleep,它能提供纳秒级的延时精度,该用户空间函数对应的内核实现是sys_nanosleep ,并且不是RT thread,那么这个usleep的时间不是准确的。 最常见的可能就是后台播放音乐会有“啪啪啪”的噪音,其原因就是usleep 不准确,而导致拿不到数据而出现noise。

    2.4K20编辑于 2022-05-13
  • 来自专栏黑光技术

    Linux中的sleep、usleep、nanosleep、poll和select

    下表列出了这几个函数间的异同点,可作为参考: 性质 精准度 线程安全 信号安全 sleep libc库函数 秒 是 不能和alarm同时使用 有些是基于alarm实现的,所以不能和alarm同时使用 usleep libc库函数 微秒 - - POSIX.1-2001已将usleep标注为废弃,POSIX.1-2008已删除usleep,应当使用nanosleep替代usleep nanosleep 系统调用

    8.7K20发布于 2019-03-06
  • 来自专栏跟Qt君学编程

    跨平台sleep,msleep,usleep兼容性问题

    写Linux应用时用到睡眠函数,比如sleep,usleep,但是将应用移植到Windows系统却是编译错误。本文解决Linux与Windows睡眠函数的兼容性问题。 Sleep(sec * 1000) #define msleep(msec) Sleep(msec) #else #include <unistd.h> #define msleep(msec) usleep (msec * 1000) #endif 2.关于Windows下的usleep 在Windows系统下使用微秒睡眠,实际用处不大,一般API调用都几微秒了。 static void usleep(unsigned long usec) { HANDLE timer; LARGE_INTEGER interval; interval.QuadPart (msec * 1000) #endif int main(int argc, char *argv[]) { sleep(1); msleep(100); usleep(1000

    4.5K20发布于 2019-08-01
  • 来自专栏蓝天

    Linux中的sleep、usleep、nanosleep、poll和select

    下表列出了这几个函数间的异同点,可作为参考: 性质 精准度 线程安全 信号安全 sleep libc库函数 秒 是 不能和alarm同时使用 有些是基于alarm实现的,所以不能和alarm同时使用 usleep libc库函数 微秒 - - POSIX.1-2001已将usleep标注为废弃,POSIX.1-2008已删除usleep,应当使用nanosleep替代usleep nanosleep 系统调用

    5.8K40发布于 2019-03-14
  • 来自专栏Nodejs技术栈

    零基础开发 Node.js Addons 插件:实现一个跨平台 sleep 函数

    有两点需要注意 #include "sleep.h" 这个宏定义是我们自己实现的,代码中 os_usleep() 这个函数是在这个文件中定义的,继续往下看。 napi_value init(napi_env env, napi_value exports) { napi_property_descriptor descriptor = { "usleep int os_usleep(unsigned int microseconds); sleep_linux.c Linux 系统下睡眠函数的实现,usleep() 单位是微秒,需要引入 unistd.h , return -1 on error int usleepRes = usleep(microseconds); return usleepRes; } sleep_win.c Windows const { usleep } = require('.

    2.6K30编辑于 2022-04-06
  • 来自专栏全栈程序员必看

    写字机器人程序

    PIN13 M3T G usleep(10000); ::ioctl(fd2,1,5);// con6 PIN14 M3L K//准备 usleep(100000); (100000); ::ioctl(fd2,0,9);// con6 PIN18 M2W g 小臂 -6000 usleep(100000); ::ioctl(fd2,1,9 );// con6 PIN18 M2W k 小臂 -6000 usleep(100000); usleep(100000); usleep(100000); usleep (100000); usleep(100000); usleep(100000); usleep(100000); usleep(100000); usleep( PIN18 M2W g 小臂 usleep(100000); ::ioctl(fd2,0,5);// con6 PIN14 M3L g usleep(10000);

    61940编辑于 2022-09-13
  • 来自专栏测试开发架构之路

    C语言之Sleep函数

    windows.h> int main() { int a=100; Sleep(3000);// 滞停3s打印a printf("%d",a); return 0; } usleep 函数: 功能: usleep功能把进程挂起一段时间, 单位是微秒us(百万分之一秒)。 语法: void usleep(int micro_seconds); 返回值: 无 注意:这个函数不能工作在 Windows 操作系统中。 usleep() 与sleep()类似,用于延迟挂起进程。 如果延迟时间为几十毫秒,或者更小,尽可能使用usleep()函数。这样才能最佳的利用CPU时间。

    8.4K80发布于 2018-04-03
  • 来自专栏android技术

    NDK--C语言线程运用及jni创建线程

    stdio.h> int num = 0; pthread_t pthid; void * thread_start(void *arg){ while(1){ num++; usleep } } void * thread_start1(void *arg){ while(1){ printf("num1 = %d\n",num); num++; usleep (random()%200); printf("num2 = %d\n",num); usleep(random()%200); } } int main(){ srand &pthid,0,thread_start,(void *)1); //创建线程2 pthread_create(&pthid,0,thread_start1,(void *)2); usleep //申请加锁 pthread_mutex_lock(&foo_mutex); printf("num1 = %d\n",num); num++; usleep

    1.8K20发布于 2020-07-02
  • 来自专栏用户8094775的专栏

    Swoole 协程学习

    php function task1(){ for ($i=0;$i<=300;$i++){ //写入文件,大概要3000微秒 usleep(3000); }\n"; } } function task2(){ for ($i=0;$i<=500;$i++){ //发送邮件给500名会员,大概3000微秒 usleep i}\n"; } } function task3(){ for ($i=0;$i<=100;$i++){ //模拟插入100条数据,大概3000微秒 usleep 写入文件,大概要3000微秒 if ($i > 300) { return false;//超过300不用写了 } echo "写入文件{$i}\n"; usleep 插入数据,大概要3000微秒 if ($i > 100) { return false;//超过100不用插入 } echo "插入数据{$i}\n"; usleep

    76440发布于 2020-12-15
  • 来自专栏学习

    深度解析如何在Linux中创建自己的第一个系统程序---进度条

    的概念 下面的具体的使用方法 usleep 是一个 C 语言中的函数,定义在 <unistd.h> 头文件中,用于让程序暂停执行一段时间(微秒级别)。 函数原型: int usleep(useconds_t usec); 参数: usec:延时的时间,以微秒(microseconds)为单位。1 秒 = 1,000,000 微秒。 示例: 以下是一个简单的例子,展示如何使用 usleep 实现动态进度条: #include <stdio.h> #include <unistd.h> // 包含 usleep 函数 int main 注意事项: 跨平台兼容性: usleep 是 POSIX 标准的一部分,因此在 Windows 平台上可能无法使用。 延时的精度: usleep 的精度依赖于操作系统调度器。在某些情况下,实际延时可能比指定时间更长,尤其是在多任务系统中。

    86910编辑于 2025-01-17
  • 来自专栏全栈程序员必看

    delay函数的用法及声明

    include <windows.h> int main() { int a; a=1000; Sleep(a);/* VC 使用Sleep*/ return 0; } usleep 语法: void usleep(int micro_seconds); 返回值: 无 函数种类: PHP 系统功能 内容说明:本函数可暂时使程序停止执行。 参见:usleep() 与sleep()类似,用于延迟挂起进程。进程被挂起放到reday queue。 只是一般情况下,延迟时间数量级是秒的时候,尽可能使用sleep()函数。 如果延迟时间为几十毫秒,或者更小,尽可能使用usleep()函数。

    1.9K10编辑于 2022-09-05
  • 来自专栏高性能服务器开发

    如何调试多线程程序

    while (true) 10 { 11 g = 100; 12 printf("worker_thread_1\n"); 13 usleep while (true) 22 { 23 g = -100; 24 printf("worker_thread_2\n"); 25 usleep 3; 45 printf("g=%d\n", g); 46 g = -4; 47 printf("g=%d\n", g); 48 49 usleep (gdb) until 48 0x00007ffff704c884 in usleep () from /usr/lib64/libc.so.6 (gdb) worker_thread_2 [Switching () from /usr/lib64/libc.so.6 (gdb) next Single stepping until exit from function usleep, which has no

    4.6K20发布于 2020-07-16
  • 来自专栏机器人课程与技术

    Windows C++移植到Linux下运行需要怎么做?(以动态甜甜圈为例)

    程序如下: #include <stdio.h> #include <math.h> #include <cstring> #include <Windows.h> void usleep(__int64 b[k] : 10); A += 0.00004; B += 0.00002; } usleep(30000); 将其更换为 #include <unistd.h> ,并删除如下函数: void usleep(__int64 usec) { HANDLE timer; LARGE_INTEGER ft b[k] : 10); A += 0.00004; B += 0.00002; } usleep(30000);

    1.3K10发布于 2021-03-03
  • 来自专栏云深之无迹

    Raspberry Pi开发实战

    bufPtr+1) % (1024); while( ACCESS(DMABASE + 0x04 /* CurBlock*/) == (int)(instrs[bufPtr].p)) usleep .p; // set up a clock for the PWM ACCESS(CLKBASE + 40*4 /*PWMCLK_CNTL*/) = 0x5A000026; usleep (1000); // set up pwm ACCESS(PWMBASE + 0x0 /* CTRL*/) = 0; usleep(1000); ACCESS(PWMBASE + 0x4 /* status*/) = -1; // clear errors usleep(1000); ACCESS(PWMBASE + 0x0 /* CTRL*/) = -1; <<13 /* Use fifo */) | (1<<10 /* repeat */) | (1<<9 /* serializer */) | (1<<8 /* enable ch */) ; usleep

    1.1K30发布于 2020-08-12
  • 来自专栏仙士可博客

    php yield关键字以及协程的实现

    php function task1(){     for ($i=0;$i<=300;$i++){         //写入文件,大概要3000微秒         usleep(3000);          }\n";     } } function task2(){     for ($i=0;$i<=500;$i++){         //发送邮件给500名会员,大概3000微秒         usleep i}\n";     } } function task3(){     for ($i=0;$i<=100;$i++){         //模拟插入100条数据,大概3000微秒         usleep 写入文件,大概要3000微秒     if ($i > 300) {         return false;//超过300不用写了     }     echo "写入文件{$i}\n";     usleep 插入数据,大概要3000微秒     if ($i > 100) {         return false;//超过100不用插入     }     echo "插入数据{$i}\n";     usleep

    1.7K20发布于 2019-12-19
  • 来自专栏LINUX阅码场

    宋宝华:用eBPF/bcc分析系统性能的一个简单案例

    下面我们尝试用funclatency这个现成的工具来分析代码里面的usleep(100)究竟真正延迟多少,写一个最简单的应用程序,编译为a.out: ? 运行后,我们来得到usleep(100)调用内核do_nanosleep的真实延迟: ? 其实usleep(100)大面积集中在256-511us。 所以,这个usleep(100)究竟有多准,天知道。 ?

    2.8K21发布于 2019-12-27
  • 来自专栏机器人课程与技术

    云课五分钟-05一段代码修改-AI修改C++

    视频: 云课五分钟-05一段代码修改-AI修改C++ 文字: usleep(30000); 实现什么功能 usleep(30000); 实现的功能是使程序暂停30000微秒(也就是0.03秒或30毫秒) 在这段代码中,usleep函数用于在每次循环迭代之间添加一个小的延迟。这样做有几个目的: 可视化效果:使得用户能够观察到图形的动态变化。如果没有这个延迟,图形变化会过快,可能难以观察。 节奏控制:对于动态系统或者动画来说,usleep可以用于控制系统的更新速度或者动画的帧率。 简单来说,usleep(30000);就是用来在每次循环迭代中创建一个小的延迟,以提供更好的用户体验并降低CPU的使用率。 如果你想让动态效果变慢一倍,你可以简单地将 usleep(30000); 这行代码修改为 usleep(60000);。

    51730编辑于 2023-11-17
  • 来自专栏goodcitizen

    [apue] 使用 Ctrl+S停止输出而不用挂起前台进程

    /bin/sh 2 var=1 3 while : 4 do 5 echo this is $var 6 var=$(($var+1)) 7 usleep 100000 8 done 这个脚本每 /deadloop.sh 16688 16673 16673 12539 16717 500 500 yunhai T pts/1 | | \_ usleep 100000 而在使用 Ctrl+S 时并无特别的信号被侦测到 (仅 usleep 进程结束时向父进程发送的 SIGCHILD)。 注意:此处的 SIGCHLD 并不表示 deadloop.sh 与 usleep 结束,而是挂起时向父进程发送的通知。 所以前者应该是在输出时被暂停的,而后者是在等待 usleep 子进程返回时被挂起的。 大家可以体会一下这两处方式在细微处的差别。

    1.1K20编辑于 2022-08-19
  • 来自专栏博客原创文章

    不死马的原理和利用

    >'; while (1){ file_put_contents($file,$code); usleep(5000); } ? >; //php代码 file_get_contents(file,code); //打开file文件,然后写入code usleep(5000); //每隔usleep(5000)写入一个新文件 unlink就是为了删除传入的不死马文件,避免一些不必要的信息泄露出去,$file中可以规定你要不断生成的文件名,usleep(time)是生成木马的时间,这也是不死马的灵魂之一,通过不断生成文件在当前目录下

    6K00编辑于 2021-12-20
  • 来自专栏源码之路

    java当中的线程和操作系统的线程是什么关系?

    main线程 int main() { //调用操作系统的函数创建线程,注意四个参数 pthread_create(&pid,NULL,thread_entity,NULL); //usleep 如果不睡眠会出现什么情况 usleep(100); printf("main\n"); } 假设有了上面知识的铺垫,那么可以试想一下java的线程模型到底是什么情况呢? pthread.h> #include <stdio.h> pthread_t pid; void* thread_entity(void* arg) { while(1){ usleep Thread\n"); } } int main() { pthread_create(&pid,NULL,thread_entity,NULL); while(1){ usleep (JNIEnv *env, jobject c1){ pthread_create(&pid,NULL,thread_entity,NULL); while(1){ usleep

    1.3K30发布于 2020-09-04
领券