我对
linux中的pthread有一些疑问:
> pthread_t是否是类似于int和char的数据类型,表明我们正在定义一个线程?
>如果是这样,需要多大的尺寸? 2个字节还是4个字节?
>编译器是在该语句之后立即将内存分配给pthread_t thread1还是等到pthread_create()调用?
>如何设置线程属性,它们的典型用途是什么?
>一个人只能在pthread_create()调用中传递多个参数吗?如果是这样,怎么样?
我脑子里有很多这样的东西.也请随时建议任何好的网站或文件阅读.
解决方法
逐个回答问题,但不一定按顺序排列:
pthread_t是一个类似于int或char的数据类型,表明我们正在定义一个线程吗?编译器是否在该句子之后立即将内存分配给pthread_t thread1,或者等到它找到pthread_create()调用之后
pthread_t是一个类似于int的类型,它是在您定义它时创建的,而不是在调用pthread_create时创建的.在片段中:
pthread_t tid; int x = pthread_create (&tid,blah,blah);
它是创建变量的第一行,尽管在从pthread_create返回之前它没有任何有用的东西.
pthread_t占用多少大小,2个字节或4个字节?
您不应该关心它需要多少空间,而不应该关心FILE结构占用多少空间.您应该按预期使用该结构.如果你真的想知道,那么sizeof就是你的朋友.
有关如何设置线程属性的任何好信息?
如果要使用除默认属性以外的任何内容,则必须先创建属性变量,然后将其传递给pthread_create调用.
我们只能将pthread_create函数中的一个参数传递给函数吗?我们不能在pthread_create()函数中向被调用的线程发送2或3个参数吗?
虽然你只允许向线程传递一个额外的参数,但没有什么能阻止你将这个参数作为指向一个容纳一百个不同东西的结构的指针.