多线程相关操作(一)基础知识

一、线程基本操作

1.1、相关接口函数

1、pthread_create 函数
函数功能:创建一条线程
函数原型:int pthread_create(pthread_t *thread, const pthread_attr_t *attr,
                                  void *(*start_routine) (void *), void *arg)
参数:thread--------->存放线程的 id
     attr------------>线程的属性,一般写 NULL
     start_routine--->线程处理函数
     arg------------->线程处理函数的参数
返回值:0------------->成功
       非0----------->失败,且返回错误码
2、pthread_exit 函数
函数功能:退出线程
函数原型:void pthread_exit(void *retval)
参数:retval-------->存放线程退出值

3、pthread_join 函数 
函数功能:回收线程
函数原型:int pthread_join(pthread_t thread, void **retval);
参数:thread------>线程 pthread_create 函数产生的线程id
      retval------>存放退出线程的信息
返回值:0-------->成功
       其他------>错误码

1.2、事例代码

/***********头文件自己写吧******/

void *routine(void *arg)
{
	printf("doing clean: %s\n", (char *)arg);
	pthread_exit("quit routine");
}

int main(void)
{
	char buf[10] = "hello";
	pthread_t pthid;
	// 创建一条线程
	pthread_create(&pthid, NULL, routine, buf);
	
	void *quit;
	
	printf("doing kill\n");
	// 阻塞等待创建的线程退出	
	 pthread_join(pthid, (void **)(&quit));
}

猜你喜欢

转载自blog.csdn.net/qq_41985711/article/details/82461957
今日推荐