我已经看到了使用线程对数组进行求和的代码。在此代码中,创建一个线程并返回int
数据类型:
int iret1, iret2;
iret1 = pthread_create( &thread1, NULL, print_message_function, (void*) message1);
iret2 = pthread_create( &thread2, NULL, print_message_function, (void*) message2);
我知道一个线程是一个进程的子进程,它用于执行程序。对于执行程序,需要内存,并且void*
数据类型返回内存。
返回int
的逻辑原因是什么?任何人都可以解释一下这个原因吗?
答案 0 :(得分:3)
根据man pthread_create
:
返回值
成功时,pthread_create()返回0;出错时,会返回错误 数字,*线程的内容未定义。
该值仅表示线程创建是否成功。
它不是像malloc
那样的内存分配调用,因此我不明白为什么你认为它应该返回一个指针。