pthread_create 中的多个参数

Jac*_*ndr 4 c linux pthreads

根据 pthread_create 手册页,该函数的参数是:

int pthread_create(pthread_t *thread, const pthread_attr_t *attr,
                      void *(*start_routine) (void *), void *arg);
Run Code Online (Sandbox Code Playgroud)

关于 void *arg,我只是想知道是否可以向它传递多个参数,因为我编写的函数需要 2 个参数。

Fle*_*exo 5

通过您,void*您可以传递您选择的结构:

struct my_args {
  int arg1;
  double arg2;
};
Run Code Online (Sandbox Code Playgroud)

这有效地允许您传递任意参数。您的线程启动例程除了解包这些参数以调用真正的线程启动例程(其本身可能来自该结构)之外什么也做不了。