Mọi người ơi cho mình hỏi 1 chút. Mình có 1 đoạn code sau:
Mã:
#define NUM_THREAD 50
void func(void* p)
{
char *tname;
tname=reinterpret_cast< char*>(p);
for(int i=0;i<10;i++)
{
printf("Thread ID: %6d - Thread name: %s >%d
",GetCurrentThreadID(),tname,i);
}
}
void main
{
HANDLE threadArr[NUM_THREAD];
char temp[30];
for (i = 0; i < NUM_THREAD; i++) {
sprintf(temp, "Thread#%d", i);
threadArr[i]=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)func,temp,0,NULL);
}
WaitForMultipleObjects(NUM_THREAD,threadArr,TRUE,INFINITE);
for(i=0;i<NUM_THREAD;i++)
CloseHandle(threadArr[i]);
printf("All done!
");
system("pause");
}
Kết quả hiển thị ra sẽ là 1 chuỗi các kết quả có dạng na ná kiểu này:
Mã:
Thread ID: 001 - Thread name: Thread#50 >1
Thread ID: 001 - Thread name: Thread#50 >2
Thread ID: 002 - Thread name: Thread#50 >1
Thread ID: 003 - Thread name: Thread#50 >1
Thread ID: 004 - Thread name: Thread#50 >1
Tất cả thread name đều có giá trị là Thread#50 (giá trị cuối cùng con trỏ trỏ đến)
Mình muốn hỏi có cách nào để sửa điều này không, hiển thị đúng thread name tương ứng với thread id ấy 
Mình cũng có đọc qua về phần đồng bộ rồi nhưng không biết ứng dụng vào đây kiểu gì, mọi người chỉ cho mình với!!! thank u!
(Trình bày hơi tối, nhưng không biết phải nói thế nào, mọi người thông cảm nhé :|)
View more random threads:
khi đề cập đến đội hình MU, không thể ko nói tới một trong các câu lạc bộ bóng đá huyền thoại và với tầm ảnh hưởng nhất trong lịch sử của môn thể thao vua. Với hơn 1 thế kỷ còn đó và phát triển,...
Đội hình MU - Manchester United:...