线程的相关函数:创建、属性、接合、退出类型......

本文介绍了Linux下线程的相关概念及函数接口,包括进程与线程的关系、线程创建(pthread_create)、线程接合(pthread_join)、线程退出(pthread_exit)、线程属性(分离与非分离)的设置,以及线程取消等。重点讨论了如何使用pthread库进行线程管理。
摘要由CSDN通过智能技术生成

一. 进程与线程关系

进程: ./xxx --> 开启一个新的进程 进程是系统最小资源分配单位

int main() { --> 进程开始 …

return 0; --> 进程结束 }
线程: 一个进程内部的资源,是系统中调度的基本单位,所有子线程都是共有资源

二. 线程的函数接口 --> 封装在线程库 libpthread.so 头文件: pthread.h

库的路径: /usr/lib/i386-linux-gnu/libpthread.so
头文件的路径: /usr/include/pthread.h

三. 关于线程的函数接口

1. 创建一个新的线程 – pthread_create --> man 3 pthread_create

#include <pthread.h>

   int pthread_create(pthread_t *thread, const pthread_attr_t *attr,
   void *(*start_routine) (void *), void *arg);

//使用了该函数,就必须在编译时链接线程库 -lpthread Compile and link with -pthread.

例子: gcc create.c -o create -lpthread

thread: 新的线程的TID号
attr: 线程的属性;普通属性: NULL
start_routine: 线程的任务函数
arg: 主线程传递子线程的参数

返回值: 	成功:0     ,并且线程创建了 	
失败:错误码,并且线程没有创建

=================================================================

#include <stdio.h>
#include <pthread.h>

//子线程的任务函数
void *fun(void *arg)
{
   
	int i;
	printf("I am child thread!\n");
	for(i=10;i>0;i--)
	{
   
		sleep(1);
		printf("child i = %d\n",i);
	}
}

int main()
{
   
	pthread_t tid; //用于存放子进程的TID号
	int ret;
	
	//主线程
	printf("I am main thread! before create!\n");
	
	ret = pthread_create(&tid,NULL,fun,NULL);
	if(ret != 0)
	{
   
		printf("pthread_create error!\n");
	}
	
	printf("I am main thread! after create!\n");
	
	int i;
	for(i=10;i>0;i--)
	{
   
		sleep(1)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值