struct MyStruct{
int id;
int* pStart;
int length;
int number;
};
void findNumber(void *p){
struct MyStruct *px = p;
int flag = 0;
for (int *t = px->pStart; t < px->pStart + px->length; t++){
if (*t == px->number){
printf("%d find %d\n", px->id, px->number);
flag++;
}
}
Sleep(500);
if (flag == 0) {
printf("%d XXX\n", px->id);
}
}
void main(){
int a[100] = { 0 };
time_t ts;
unsigned int date = time(&ts);
srand(date);
for (int i = 0; i < 100; i++){
int r = rand();
if (i % 10 == 0) {
printf("[%d]:", (1+ i / 10));
}
printf("%d ", r % 100);
if ((i + 1) % 10 == 0){
printf("\n");
}
a[i] = r % 100;
}
int num;
printf("input number:");
scanf("%d", &num);
struct MyStruct myStruct[10];
for (int i = 0; i < 10; i++){
myStruct[i].id = i + 1;
myStruct[i].length = 10;
myStruct[i].number = num;
myStruct[i].pStart = a + 10 * i;
//findNumber(&myStruct[i]);
HANDLE handle = _beginthread(findNumber, 0, &myStruct[i]);
WaitForSingleObject(handle, INFINITE);
/*
*/
}
system("pause");
}
[1]:14 48 97 99 39 14 75 96 23 96
[2]:84 61 96 46 59 51 77 4 18 41
[3]:0 21 73 39 10 73 84 16 5 64
[4]:78 56 74 33 7 70 41 88 5 60
[5]:21 60 95 87 56 88 42 50 95 32
[6]:17 46 82 27 79 51 70 10 98 77
[7]:3 99 70 18 12 7 22 39 64 32
[8]:70 18 98 32 86 33 53 82 77 86
[9]:2 58 26 50 53 19 7 8 82 82
[10]:3 32 52 50 86 23 18 86 82 12
input number:7
1 XXX
2 XXX
3 XXX
4 find 7
6 XXX
10 XXX
8 XXX
7 find 7
5 XXX
9 find 7