jah*_*max 7 c linux multithreading
有人在c中有一个简单的线程示例吗?
我想构建一个小型控制台应用程序,它将逐行读取txt文件文件,然后使用线程处理整个txt.我该怎么做?将txt拆分为X,其中X = N的线程,是我想到的第一件事,有更好的方法吗?
搜索pthreads.我也是新手.这是一个总和从1到1000000000(也是我的第一个工作pthread程序)的代码片段.
#include <stdio.h>
#include <pthread.h>
struct arg {
int a, b;
int *rst;
};
typedef struct arg arg;
void* sum(void *);
int main()
{
pthread_t sum1, sum2;
int s1, s2;
pthread_create(&sum1, NULL, sum, &(arg){1, 500000000, &s1});
pthread_create(&sum2, NULL, sum, &(arg){500000001, 1000000000, &s2});
pthread_join(sum1, NULL);
pthread_join(sum2, NULL);
printf("%d\n", s1 + s2);
}
void* sum(void *ptr)
{
int i, temp = 0;
arg *x = ptr;
for(i = x->a; i <= x->b; ++i)
temp += i;
*(x->rst) = temp;
}
Run Code Online (Sandbox Code Playgroud)