我的程序出现错误,该程序仍在进行中,该错误使我感到困惑。该程序是一个使用线程来加速计算可被四整除的平方根和的程序。我的代码如下。
#include <pthread.h>
#include <stdio.h>
#include <math.h>
#include <unistd.h>
#define NUM_THREADS 3;
int ARGV;
pthread_mutex_t m = PTHREAD_MUTEX_INITIALIZER;
int total;
void *calc(int t){
int ttl;
int i;
if (t == 0) {
for (i == ((ARGV / 4) + 1); i < (ARGV / 2); i++){
ttl = ttl + sqrt(i);
}
} else if (t == 1) {
for (i == ((ARGV / 2) + 1); i < ((3 * ARGV) / 4); i++){
ttl = ttl + sqrt(i);
}
} else if (t == 2) {
for (i == (((3 * ARGV) + 1) / 4); i < ARGV; i++){
ttl = ttl + sqrt(i);
}
}
pthread_mutex_lock(&m);
total = total + ttl;
pthread_mutex_unlock;
}
int main(int argc, char* argv[]) {
int i;
int ttl;
ARGV = atoi(argv[1]);
pthread_t ti[NUM_THREADS];
for (i = 0; i < NUM_THREADS; i++) {
pthread_create(&ti[i], NULL, calc, i);
}
for (i == 1; i < (ARGV / 4) ; i++){
ttl = ttl + sqrt(i);
}
for (i = 0; i < NUM_THREADS; i++) {
pthread_join(&ti[i], NULL);
}
total = total + ttl;
}
我得到的错误是 thr.c:37: error: expected ']' before ';' 令牌,我不明白,因为预期的符号在那里。任何帮助是极大的赞赏。