关于进程和线程

关于进程和线程

ID:33566907

大小:59.75 KB

页数:10页

时间:2019-02-27

关于进程和线程_第1页
关于进程和线程_第2页
关于进程和线程_第3页
关于进程和线程_第4页
关于进程和线程_第5页
资源描述:

《关于进程和线程》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、线程和进程1・・线程和进程的区别:线程:是一种轻量级进程,线程存在于进程中。线程和进程一样都会被操作系统调度(时间片)通常线程指的是共享相同地址空间的多个任务。线程优势:线程运行时,相互切换效率高;线程Z间共享数据很方便。进程拥有独立的运行空间,一个进程崩溃后,在保护模式下并不会影响其他的进程。一个进程中可以包含有多个线程,而一个线程只能包含在进程中。一个线程拥有自己独有的局部变量栈,但是没有独立的空间,一个进程屮多个线程共同共享一块资源,因此当一个线程崩溃后此进程也会崩溃。因此多进程要比多线程健壮性要

2、好,但是,多进程效率比较低。当需要并行操作和共亨某些变量最好使用多线程的模式。2—关于线程的创建:■intpthread_create(pthread_t*thread,constpthread_attr_t*attr,void*(*routine)(void*),void*arg)■参数:thread,线程的标识符(类似于进程的pid号)attr,用于指定创建的线程的属性,通常为NULL(不需要设置)routine,函数指针,该函数就是线程主体arg,就是传递给函数的参数。返回值:成功返回0,失败返回

3、非负的错误号■intpthread_exit(void*value_ptr)■功能:只会导致当前线程的退出函数■参数:就是传递的退岀状态(指针)■通常使用:pthread_exit(O);■返回值:成功返回0,失败返回非负的错误号■进程对己经退出的线程必须要做回收线程资源的操作(否则会产生僵尸线程)■intpthread_join(pthread_tthread,void**value_ptr)■功能:阻塞等待回收退出的线程的资源■参数:thread,就是指定要回收的线程资源value_ptr,就是接收

4、到线程的退出状态。■返回值:成功返回0,失败返回非负的错误号3—线程的控制:■互斥锁:主要用来保护临界资源(可是变量,后者是代码段)任何吋刻最多只能有一个线程能访问该资源相关函数接口:■intpthread_mutex_init(pthread_mutex_t*mutex,pthread_mutexattr_t*attr)■功能:锁的初始化函数,即生成一把锁■参数:mutex,是锁的标识符attr,设置锁的属性,通常为NULLo■返回值:成功返回0,失败返回非负的错误号■intpthread_mutex

5、_lock(pthread_mutex_t*mutex)■功能:阻塞等待直到这把锁申请成功为止,对临界资源进行上锁操作■参数:mutex,就是指定的一把锁■返回值:成功返回0,失败返回非负的错误号■intpthread_mutex_unlock(pthread_mutex_t*mutex)■功能:对临界资源进行解锁操作■参数:mutex,就是指定要解开的锁■返回值:成功返回0,失败返回非负的错误号■intpthread_mutex_destroy(pthread_mutex_t*mutex);■功能:销

6、毁一把指定的锁■参数:mutex,就是指定要销毁的锁■返回值:成功返回0,失败返回非负的错误号注意:为了避免死锁:在屮请多把锁时,所有的线程都按照同样的顺序去屮请。2—线程之间的通信:intpthread_cond」nit(pthread_cond_t*restrictcond,constpthread_condattr_t*restrictattr);■功能:初始化一个条件变量■参数:cond,就是条件变量的标识符attr,通常为NULL即可■返回值:成功返回0,失败返回非负的错误号■intpthre

7、ad_cond_wait(pthread_cond_t*restrictcond,pthread_mutex_t*restrictmutex);■功能:条件睡眠,直到被指定的条件唤醒为止■参数:cond,就是指定睡眠条件,将来被唤醒吋也必须满足该条件mutex,该函数睡眠时必须提前加上一把锁■注意:该睡眠函数调用之前必须先加上一把锁,然后进入睡眠,然后该函数内部■将锁解开;当该函数被唤醍时,需要重新加上这把锁,如果发现这把锁被其他线程占用,那么该函数的唤醒操作就失败了,继续睡眠。■返回值:成功返回0,失

8、败返回非负的错误号■intpthread_cond_signal(pthread_cond_t*cond);■功能:就是唤醒睡眠在cond条件上的线程,但是只能唤醍一个线程■参数:cond,就是指定要唤醒的条件■返回值:成功返回0,失败返回非负的错误号■intpthread_cond_broadcast(pthread_cond_t*cond);■功能:唤醒所有睡眠这个条件上的线程■intpthread_cond_destroy(pthre

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。