黑基Web安全攻防班
安基网 首页 IT技术 网络管理 查看内容

LINUX学习笔记——多线程

2012-3-23 11:03| 投稿: Linux

摘要: 1.         线程理论基础: a)     &nbs...
1.         线程理论基础: a)         比进程更节俭:线程所有代码数据都是共享的 b)         方便:因为数据共享,所以通信方便 c)         遵循POSIX线程接口,称为pthread,需要#include<pthread.h> 2.         创建线程:int pthread_create(pthread_t *tidp, const pthread_attr *attr, void *(start_rtn)(void), void *arg) a)         Tidp:用来获取创建线程的ID b)         Attr:线程属性,一般为NULL c)         Start_rtn:线程要执行的函数,函数执行完了,线程也就完了! d)         Arg:start_rtn的参数,注意是空指针变量,使用时需要进行类型强制转换。 e)         编译:Pthread的库不是LINUX系统的库,编译时需要加上, 1.         #gcc filename –lpthread:l指定自己加的库 f)          注意:线程优先共享全局变量,共享数据段!而局部变量处于堆栈处,不共享。 3.         线程终止: a)         程序从启动历程中返回。 b)         线程可以被另一个进程终止。创建线程的进程结束了,线程也就结束了。 c)         线程自己调用pthread_exit函数:void pthread_exit(void *rval_ptr) 1.         #include<pthread.h> 2.         rval_ptr:获取线程退出返回值的指针 4.         线程等待:int pthread_join(pthread_t tid, void **rval_ptr) a)         作用:等待某个线程结束后再进行主程序。 b)         #include<pthread.h> c)         Tid:线程ID号 d)         Rval_ptr:线程返回值的指针,就看你是否需要返回值,不需要填NULL e)         注意:创建线程后处于就绪态,需要主进程有线程等待的时间,线程才能有时间运行。 5.         获取线程ID: pthread_t  pthread_self(void) a)         #include<pthread.h> 6.         退出保护: a)         当程序非正常退出时,清除栈空间。 b)         void pthread_cleanup_push(void (*rth)(void *), void *arg) 1.         #include<pthread.h> 2.         用push函数和pop把程序段括起来 3.         将清除函数压入清除栈,当被括程序没运行到POP就退出时,调用清理函数,不包括return。如果有多条PUSH时,先进后出 4.         Rtn:清除函数 5.         Arg:清除函数的参数 c)         void pthread_cleanup_pop(int execute) 1.         #include<pthread.h> 2.         将清除函数弹出清除栈 3.         Execute:决定是否在弹出清理函数的同时执行该函数,非0:执行;0:不执行 d)         清除函数:就是自己定义的内容,最主要的是得有return语句

小编推荐:欲学习电脑技术、系统维护、网络管理、编程开发和安全攻防等高端IT技术,请 点击这里 注册黑基账号,公开课频道价值万元IT培训教程免费学,让您少走弯路、事半功倍,好工作升职加薪!



免责声明:本文由投稿者转载自互联网,版权归原作者所有,文中所述不代表本站观点,若有侵权或转载等不当之处请联系我们处理,让我们一起为维护良好的互联网秩序而努力!联系方式见网站首页右下角。


鲜花

握手

雷人

路过

鸡蛋

相关阅读

最新评论

最新

返回顶部