pthread

pthread

和进程相比,线程是一种非常“节俭”的多任务操作方式。线程间代码段、数据段、堆栈都是共享的。

运行于一个进程中的多个线程,它们之间使用相同的地址空间,而且线程间彼此切换所需的时间也远远小于进程间切换所需要的时间。据统计,一个进程的开销大约是一个线程开销的30倍左右。

线程间方便的通信机制,对于不同进程来说,它们具有独立的数据空间,要进行数据的传递只能通过进程间的通信的方式进行,这种方式不仅费时,而且很不方便。线程则不然,由于同一进程下的线程之间共享数据空间,所以一个线程的数据可以直接为其他线程所用,这不仅快捷,而且方便。

创建线程:

Int pthread_create(pthread_t *tidp, const pthread_addr_t *attr, void *(*start_rtn)(void), void *args)

Tidp:线程idattr:线程属性(通常为空),start_rtn:线程要执行的函数,argsStart_rtn的参数。

编译:因为pthread 的库不是Linux 系统的库,所以在进行编译的时候要加上(L)……-lpthread

如:#gcc filename -lpthread

终止线程:如果进程中任何一个线程中调用exit_exit,那么整个进程都会终止。线程的正常退出方式有:(1)线程从启动例程中返回 return2)线程可以被另一个进程终止 (3)线程自己调用pthread_exit 函数。

Void pthread_exit(void *rval_ptr)  rval_ptr:线程退出返回值的指针。

 

线程等待:int pthread_join(pthread_t tid, void **rval_ptr)  rval_ptr:线程退出返回值的指针。

线程标识:pthread_t pthread_self(void) 功能:获取调用线程的thread identifier,返回值是当前线程的ID

 

线程终止有两种情况:正常终止和非正常终止。线程主动调用Pthread_exit 或者从线程函数中return都将使线程正常退出,这是可预见的退出方式;非正常终止是线程在其他线程的干预下,或者由于自身运行出错而退出,这种退出方式是不可预见的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值