Linux 多线程编程( POSIX )( 二 )----->代码区
来源:互联网 发布:普联软件怎么样 编辑:程序博客网 时间:2024/05/02 00:42
转自:http://blog.sina.com.cn/s/blog_6dc9e4cf0100xcvk.html
1.detach实例:
//!> detach
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
void * entrance( void * arg )
{
int get_attr_int;
pthread_attr_t attr;
printf("子进程创建OK, ID == %d\n",(unsigned)pthread_self());
if(pthread_attr_getdetachstate( &attr,&get_attr_int ) != 0 )
{
printf("获取属性失败...\n");
exit(EXIT_FAILURE );
}
if(PTHREAD_CREATE_DETACHED == get_attr_int) //!> 设置分离OK
{
printf("我是被分离的线程...\n");
}
}
int main( int argc, char ** argv )
{
pthread_t tid;
pthread_attr_t attr;
pthread_attr_init( &attr); //!> 初始化属性
if(pthread_attr_setdetachstate( &attr,PTHREAD_CREATE_DETACHED ) != 0 )
{
printf("设置属性失败...\n");
exit(EXIT_FAILURE );
}
//!> 设置成分离
if(pthread_create( &tid, &attr,entrance, NULL ) !=0) //!> 按照此属性创建线程
{
printf("创建线程失败...\n");
exit(EXIT_FAILURE );
}
else
{
printf("创建OK... \n");
}
//!>pthread_join(tid); //!> 注意此处的join是不需要的!!!!!!!
pthread_attr_destroy( &attr); //!> 去除属性
sleep( 2);