代码: 全选
#include <time.h>
void delayms(int n_msec)
{
u_int32 i,j,k ;
for(i=15*n_msec;i>0;i--)
for(j=202;j>0;j--)
for(k=81;k>0;k--);
}
void test1_task()
{
u_int64 msec=0;
struct timeval time_start1, time_stop1;
struct timespec time_start, time_stop;
gettimeofday(&time_start1, 0);
clock_gettime(CLOCK_THREAD_CPUTIME_ID, &time_start);
delayms(10*1000);
//sleep(10);
gettimeofday(&time_stop1, 0);
clock_gettime(CLOCK_THREAD_CPUTIME_ID, &time_stop);
msec = timevaldiff_2(&time_start, &time_stop);
printf("msec=%lld\n", msec);
msec = timevaldiff(&time_start1, &time_stop1);
printf("msec=%lld\n", msec);
return;
}
void test2_task()
{
printf("test2_task start\n");
{
delayms(20*1000);
}
printf("test2_task stop\n");
return ;
}
void test(void)
{
THREAD_ID test1_task_id;
THREAD_ID test2_task_id;
THREAD_ID test3_task_id;
THREAD_ID test4_task_id;
THREAD_ID test5_task_id;
THREAD_ID test6_task_id;
THREAD_ID test7_task_id;
THREAD_ID test8_task_id;
THREAD_ID test9_task_id;
thread_create(test1_task, 0, (void **)NULL,
(u_int32)(1024*32), 127, "test1_task", &test1_task_id);
thread_create(test2_task, 0, (void **)NULL,
(u_int32)(1024*32), 127, "test2_task", &test2_task_id);
thread_create(test2_task, 0, (void **)NULL,
(u_int32)(1024*32), 127, "test3_task", &test3_task_id);
thread_create(test2_task, 0, (void **)NULL,
(u_int32)(1024*32), 127, "test4_task", &test4_task_id);
thread_create(test2_task, 0, (void **)NULL,
(u_int32)(1024*32), 127, "test5_task", &test5_task_id);
thread_create(test2_task, 0, (void **)NULL,
(u_int32)(1024*32), 127, "test6_task", &test6_task_id);
thread_create(test2_task, 0, (void **)NULL,
(u_int32)(1024*32), 127, "test7_task", &test7_task_id);
thread_create(test2_task, 0, (void **)NULL,
(u_int32)(1024*32), 127, "test8_task", &test8_task_id);
}