当前位置:  技术问答>linux和unix

关于使用clock()来测量任务的执行时间差的疑问

    来源: 互联网  发布时间:2017-03-26

    本文导语:  #include  #include  #include #include #include #include #define TIMEGAP 1 void *fun_1()     {         printf("tid = %dn",pthread_self());         clock_t start,end2;         start=clock();   //线程开始         double duration ;         w...

#include 
#include 
#include
#include
#include
#include
#define TIMEGAP 1
void *fun_1()
    {
        printf("tid = %dn",pthread_self());
        clock_t start,end2;
        start=clock();   //线程开始
        double duration ;
        while(1)
          {
             duration=(double)(end2-start)/CLOCKS_PER_SEC;
               if(duration>1)
                {
                     printf("time arrived!n");
                     break;
                }
                end2=clock(); //结束时间
                printf("end2=%d n",end2);
                usleep(1000);
          }


     }

int main()
{
    clock_t start,end1;
    double duration;
    long i = 10000000L;
    pthread_t tid;
      int ret=pthread_create(&tid,NULL,fun_1,NULL);
       if(!ret)
           perror("pthread_create");

    start=clock();   //主线程中测量执行时间,
    while(i--);
    end1=clock();
    printf("end1=%d n",end1);
    duration=(double)(end1-start)/CLOCKS_PER_SEC;
    printf("%f ",duration);
    return 0;
}


这里有个疑问问什么线程的ID是负数,
还有为什么我的线程里的while语句执行的不是自己想要的??
貌似没执行打印语句啊


-----------------------------各位能给我看一下吗。
http://bbs.chinaunix.net/thread-4057635-1-2.html这是我在另外看到的一边帖子

|
clock是进程的大概执行时间,用clock无法测量一个线程的执行时间,记住线程是共用进程的内存空间和资源,这个资源就包括clock获取的进程执行时间。

|
因为线程ID就是一个无符号长整型,并且值很大,你用%d自然打出来负数,
你要什么打印结果,把实际的结果贴出来

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • linux C编程中使用make时对 内部规则的疑问
  • NandFlash分区使用的疑问
  • linux下gcc使用疑问?
  • 有关 在 JSWDK 服务器 下使用 .shtml 文件的疑问??
  • 关于ioremape使用的一个小疑问
  • 中断处理函数中使用自旋锁的疑问
  • expect使用疑问
  • crontab 使用疑问
  • bind函数客户端使用疑问?求解
  • 关于linux编译、使用动态库的几个疑问
  • 使用JDBC连接数据库时Class.forName()语句的使用疑问
  • 关于在UNIX中使用消息队列的一点疑问
  • linux中umask的使用疑问。
  • mmap的使用疑问,怎么总线错误啊?
  • 使用JBUILD中出现的疑问!郁闷中~~~~
  • linux posix信号量使用疑问
  • 安装使用Redhat过程中遇到几个疑问请教linux老手.
  • linux cp 命令的使用疑问
  • 新手GCC/GDB使用疑问(比较IDE环境)
  • 消息队列的使用疑问??
  • C++ I/O 成员 tellg():使用输入流读取流指针
  • 在测试memset函数的执行效率时,分为使用Cash和不使用Cash辆种方式,该如何控制是否使用缓存?
  • C++ I/O 成员 tellp():使用输出流读取流指针
  • 求ibm6000的中文使用手册 !从来没用过服务器,现在急需使用它,不知如何使用! 急!!!!!
  • Python不使用print而直接输出二进制字符串
  • 请问:在使用oracle数据库作开发时,是使用pro*c作开发好些,还是使用库函数如oci等好一些啊?或者它们有什么区别或者优缺点啊?
  • Office 2010 Module模式下使用VBA Addressof
  • 急求结果!!假设一个有两个元素的信号量集S,表示了一个磁带驱动器系统,其中进程1使用磁带机A,进程2同时使用磁带机A和B,进程3使用磁带机B。
  • windows下tinyxml.dll下载安装使用(c++解析XML库)
  • c#中SAPI使用总结——SpVoice的使用方法
  • tcmalloc内存泄露优化c++开源库下载,安装及使用介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3