【发布时间】:2019-12-08 10:42:52
【问题描述】:
由于我是 pthread 编程的新手,所以我在理解这段代码时遇到了一些麻烦。据我了解,我们创建 N 个线程 并对其执行 run 函数,该函数仅打印线程号。我错过了什么吗?
在这种特殊情况下,与 printf 相比,使用 snprintf(带缓冲区)是否有任何优势?这个程序可以进一步改进吗?
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
static int N = 5;
static void* run(void *arg)
{
int *i = (int *) arg;
char buf[123];
snprintf(buf, sizeof(buf), "thread %d", *i);
return buf;
}
int main(int argc, char *argv[])
{
int i;
pthread_t *pt = NULL;
for (i = 0; i < N; i++) {
pthread_create(pt, NULL, run, &i);
}
return EXIT_SUCCESS;
}
【问题讨论】:
标签: c linux multithreading pthreads stdio