#include #include #include #include unsigned __stdcall counter(void *arg) { int i; int no; int pid; pid=_getpid(); no=(int)arg; for(i=0;i<10;i++){ _sleep(1000); printf("[%d][%d]%d\n",pid,no,i); } return(0); } void main() { int thread_id1,thread_id2; unsigned dummy; int p_pid; p_pid=_getpid(); printf("[%d]start\n",p_pid); thread_id1=_beginthreadex(NULL,0,counter,(void *)1,0,&dummy); if(thread_id1==0){ fprintf(stderr,"pthread_create : %s",strerror(thread_id1)); } else{ printf("[%d]thread_id1=%d\n",p_pid,thread_id1); } thread_id2=_beginthreadex(NULL,0,counter,(void *)2,0,&dummy); if(thread_id2==0){ fprintf(stderr,"pthread_create : %s",strerror(thread_id2)); } else{ printf("[%d]thread_id2=%d\n",p_pid,thread_id2); } WaitForSingleObject( (HANDLE)thread_id1, INFINITE ); printf("[%d]thread_id1 = %d end\n",p_pid,thread_id1); WaitForSingleObject( (HANDLE)thread_id1, INFINITE ); printf("[%d]thread_id2 = %d end\n",p_pid,thread_id2); printf("[%d]end\n",p_pid); }