2

開始ルーチン内の各スレッドのアフィニティを変更しようとしています。

これがコードです。以下のコードでは、「t」はpthread_create関数を介して渡される引数です。

    cpu_set_t mask;
    pthread_t c;

    a = *((int *)t);

    printf(" thread no. is %d \n",a);

    CPU_ZERO(&mask);

    a =a/2 + 1;

    CPU_SET(a,&mask);

    c=pthread_self();
    s=pthread_setaffinity_np(c,sizeof(cpu_set_t), &mask);
    if (s!=0)
        handle_error_en(s,"pthread_setaffinity_np");

スレッドアフィニティは変更されていません。どこが間違っているのですか?

4

1 に答える 1

1

マスクの境界を誤解していました。それは私が間違っていたところです。

于 2012-01-31T22:13:30.007 に答える