Linux系统下实现多线程客户_服务器(2)Linux认证考试

文章作者 100test 发表时间 2009:07:08 01:03:58
来源 100Test.Com百考试题网


每个线程都有很多属性:优先级、起始栈大小、是否应该是一个守护线程等等,当创建线程时,我们可通过初始化一个pthread_attr_t变量说明这些属性以覆盖缺省值。我们通常使用缺省值,在这种情况下,我们将attr参数说明为空指针。

最后,当创建一个线程时,我们要说明一个它将执行的函数。线程以调用该函数开始,然后或者显式地终止(调用pthread_exit)或者隐式地终止(让该函数返回)。函数的地址由func参数指定,该函数的调用参数是一个指针arg,如果我们需要多个调用参数,我们必须将它们打包成一个结构,然后将其地址当作唯一的参数传递给起始函数。

在func和arg的声明中,func函数取一个通用指针(void *)参数,并返回一个通用指针(void *),这就使得我们可以传递一个指针(指向任何我们想要指向的东西)给线程,由线程返回一个指针(同样指向任何我们想要指向的东西)。调用成功,返回0,出错时返回正Exxx值。Pthread函数不设置errno。

第二个函数:

int pthread_join(pthread_t tid,void **status).

该函数等待一个线程终止。把线程和进程相比,pthread_creat类似于fork,而pthread_join类似于waitpid。我们必须要等待线程的tid,很可惜,我们没有办法等待任意一个线程结束。如果status指针非空,线程的返回值(一个指向某个对象的指针)将存放在status指向的位置。

第三个函数:

pthread_t pthread_self(void).

线程都有一个ID以在给定的进程内标识自己。线程ID由pthread_creat返回,我们可以pthread_self取得自己的线程ID。

第四个函数:

int pthread_detach(pthread_t tid).


相关文章


使用Linux高效构建无线网关_防火墙(2)Linux认证考试
使用Linux高效构建无线网关_防火墙(1)Linux认证考试
Linux操作系统下双启动环境的陷阱问题Linux认证考试
Linux将挑战Unix在金融电信的优势地位Linux认证考试
Linux系统下实现多线程客户_服务器(2)Linux认证考试
Linux系统下实现多线程客户_服务器(3)Linux认证考试
Linux系统下实现多线程客户_服务器(1)Linux认证考试
linux论证考试模拟题:模拟试题10道Linux认证考试
Linux英文试题50道(5)Linux认证考试
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛