windows xp中执行如下代码,执行结果为:672毫秒左右
我的是windows
xp,release版,优化为最快速度
#include <windows.h>
#include
<stdio.h>
DWORD WINAPI ThreadFunc( LPVOID param )
{
return 0;
}
int
main()
{
HANDLE hThread;
int i;
DWORD dwBegin,
dwEnd;
dwBegin = GetTickCount();
for ( i = 0; i
< 10000; ++i ) {
hThread = CreateThread( NULL, 0,
ThreadFunc, NULL, 0, NULL );
WaitForSingleObject( hThread,
INFINITE );
CloseHandle( hThread );
}
dwEnd =
GetTickCount();
printf( "time=%d/n", dwEnd - dwBegin );
return 0;
}
Linux(2.6内核,NPTL线程,我的是FC6)中执行以下代码,执行结果为:275毫秒左右
#include
<pthread.h>
#include <stdio.h>
#include
<sys/time.h>
void* ThreadFunc( void *param )
{
return NULL;
}
int main()
{
int i;
struct timeval tv1, tv2;
pthread_t tid;
gettimeofday( &tv1, NULL );
for ( i = 0; i
< 10000; i++ ) {
pthread_create( &tid, NULL,
ThreadFunc, NULL );
pthread_join( tid, NULL );
}
gettimeofday( &tv2, NULL );
printf( "time=%d/n",
(tv2.tv_sec-tv1.tv_sec)*1000 + tv2.tv_usec/1000-tv1.tv_usec/1000 );
return 0;
}