当我在创建线程时将 pthread_mutex_attr 作为参数提供时,我遇到了问题。如果我将属性作为NULL传递,它工作正常,但不需要这个 NULL,
我在这里发布代码,请帮助我纠正我的错误并学习东西。
pthread_mutex_t thread_mutex = PTHREAD_MUTEX_INITIALIZER;
pthread_t thread1;
pthread_mutexattr_t attr;
pthread_mutexattr_init(&attr);
pthread_mutexattr_setpshared(&attr, PTHREAD_PROCESS_SHARED);
pthread_mutex_init(&thread_mutex, &attr);
ret = pthread_create(&thread1, NULL, my_func, (void *)message);
pthread_mutexattr_destroy(&attr);
pthread_mutex_destroy(&thread_mutex);
pthread_exit(NULL);
如果我像这样通过 attr
ret = pthread_create(&thread1,&attr,upload_data,(void *)message);
这是给分段错误。