多线程加法代码 c++实现
时间: 2023-10-18 11:22:46 浏览: 36
当然可以回答这个问题。下面是一个简单的多线程加法代码的C实现:
```
#include <stdio.h>
#include <pthread.h>
#define NUM_THREADS 5
int sum = 0;
pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
void *thread_func(void *arg)
{
int thread_id = *(int *)arg;
int i;
for (i = 1; i <= 10; i++) {
pthread_mutex_lock(&mutex);
sum += i;
printf("Thread %d: sum is now %d\n", thread_id, sum);
pthread_mutex_unlock(&mutex);
}
pthread_exit(NULL);
}
int main()
{
pthread_t threads[NUM_THREADS];
int thread_ids[NUM_THREADS];
int i;
for (i = 0; i < NUM_THREADS; i++) {
thread_ids[i] = i;
pthread_create(&threads[i], NULL, thread_func, &thread_ids[i]);
}
for (i = 0; i < NUM_THREADS; i++) {
pthread_join(threads[i], NULL);
}
printf("Final sum is %d\n", sum);
return 0;
}
```