C、如何使用pthread_create函数创建线程

标签 c multithreading function pthreads createthread

我正在为一个调度队列创建一个 c 文件,该队列获取一个任务并将其放入一个链表队列中。为此,我需要使用

创建线程
pthread_t cThread;
if(pthread_create(&cThread, NULL, work, param)){
    perror("ERROR creating thread.");
}

但是我需要创建另一个函数,它作为创建函数的参数进入“work”和“param”变量。我的 friend 告诉我,我只需要将任何代码放入无限循环的工作函数中,这样线程就不会死掉。任何人都可以解释每个参数进入 pthread_create 函数 - 特别是 工作参数?我在谷歌上搜索了这个,但是大多数教程都很难理解这个概念......

最佳答案

pthread_create 的四个参数依次为:

  1. 指向 pthread_t 结构的指针,pthread_create 将使用有关它创建的线程的信息填充该结构。

  2. 指向带有线程参数的pthread_attr_t 的指针。大多数情况下,您可以安全地传递 NULL

  3. 在线程中运行的函数。该函数必须返回 void * 并采用 void * 参数,您可以根据需要使用它。 (例如,如果您启动具有相同功能的多个线程,则可以使用此参数来区分它们。)

  4. 要启动线程的 void *。如果不需要,请传递 NULL

关于C、如何使用pthread_create函数创建线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6990888/

相关文章:

c - 删除尾随空格的程序不起作用! :(

c - 如何在 C 中强制使用返回值

Java 最终字段 : is "taint" behavior possible with the current JLS

c++ - 使用 std::mutex 实现类交换

delphi - Delphi中的结果值逻辑?

python - 在 Python 中反向执行一个函数

c - 我需要重写这行代码,需要帮助

c - 增量同步原语

javascript - 我可以在 JavaScript 中执行此操作吗?如果参数未传递则有条件返回

c++ - 垂直工具栏上的渲染子工具