0

我有一个应用程序,我需要在其中使用pthreads_create. 我知道我可以创建具有不同值的参数结构的单独副本,但这样做的问题是线程数是在应用程序之外指定的。所以我想要一个结构,它同时具有静态(即通过引用传递)和动态(即按值传递,可以在 main 中修改而不影响子线程中的值)部分。事实上,我需要传递的唯一变量是当前线程的数量,因为这个变量在 main.js 中递增。

我在想我需要创建一个包含指针(用于稳定部分)和非指针(用于动态部分)的结构,但是我不知道如何通过引用来传递这个结构pthreads_create

struct StableParams {
    int n_threads;
    // other stable parameters
};

struct Args {
    struct StableParams *params;
    int curr_thread;
};

...

struct Args args; 
...
for(t=1; t <= args.params->n_threads ; t++){

    args.curr_thread = t;
    printf("In main: creating thread %d\n", args.curr_thread);

    rc = pthread_create(&threads[t], NULL, do_thread, (void *)&args);

}
4

0 回答 0