
Linux POSIX多线程
文章平均质量分 71
sadjason
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
3.退出和取消进程
《pthread_create()初体验》里曰过:进程的终止可以通过在主函数main()中直接调用exit、return、或者通过进程中的任何其它进程调用exit来实现。在任何一种情况下,该进程的所有进程都会终止。如果主线程在创建了其它进程之后没有工作可做,或者说主线程有必要等到其他进程都结束才结束的情况下,主线程应该阻塞到所有进程都结束为止。“进程的终止可以通过在主函数main()中直接原创 2013-08-01 18:05:56 · 906 阅读 · 0 评论 -
5.线程的属性和状态
线程属性POSIX将栈的大小和调度策略这样的特征封装到一个pthread_attr_t类型的对象中去,用面向对象的方式表示和设置特征。属性对象只在线程创建的时候会对线程产生影响。编写程序时可以先创建一个属性对象,然后再将栈的大小和调度策略这样的特征与属性对象关联起来,之后就可以通过向pthread_create传递相同的线程属性对象来创建多个具有相同特征的线程。通过将各种特征组合到单个对象中区原创 2013-08-01 18:18:54 · 772 阅读 · 0 评论 -
8.条件变量应用实例
基于《4.Linux C多线程的执行顺序问题》进行修改,现在要做这么一件事情,线程thread_one和线程thread_two共同处理一个全局变量i,thread_one:++i和打印i,thread_two处理的事情是:打印i。thread_one和thread_two都处理打印i的事务,所不同的是,当i为3的倍数的时候,由thread_two打印,否则由thread_one打印。程序原创 2013-08-01 18:38:41 · 1169 阅读 · 2 评论 -
2.pthread_join()、pthread_exit()、pthread_cancel()简述
继续回到解决程序#include #include #include void *sayhello(void *arg){printf("hello, world! I'm son\n");}int main(void){int error;pthread_t son;error = pthread_create(&son, NULL, sayhello, NULL);原创 2013-08-01 17:59:09 · 2636 阅读 · 0 评论 -
4.Linux C多线程的执行顺序问题
先来探究一下最自然状态下(除了pthread_create()不做任何处理)main线程、子线程之间的执行顺序问题!试验之前不妨来些猜测:猜测1:执行顺序main Thread > thread_one > thread_two(thread_one比thread_two先创建)猜测2:它们的执行顺序没有严格的先后顺序P.S:若猜测1正确,那么在“不对主线程进行阻塞”的情况下,子线原创 2013-08-01 18:11:33 · 2180 阅读 · 0 评论 -
6.互斥量
互斥量是一种特殊的变量,它可以处于锁定状态(locked),也可以处于解锁状态(unlocked)。如果互斥量是锁定的,那么必然有一个线程持有或拥有这个互斥量。如果没有任何一个线程持有这个互斥量,那么这个互斥量就处于解锁、空闲或可用状态(这三种状态有区别?!)。当互斥量空闲,并且有一个线程试图获取这个互斥量时,这个线程就可以获得这个互斥量而不会被阻塞。如果互斥量处于锁定状态,那么试图获取这个互斥量原创 2013-08-01 18:33:11 · 787 阅读 · 0 评论 -
7.条件变量简介
条件变量,先谈谈自己的理解吧!互斥量解决了不同线程处理共享资源的问题,比如有俩线程one和two以及和一个共享资源share,one和two每次处理share的前提都是成功获取互斥量mutex,这样的做法保证了共享资源在一段时间里只被一个线程处理,也即保证了处理共享资源的原子性。但这还不够,常常会有这样的应用需求(mark nb),线程one处理完共享资源share之后,需要通知处于阻塞状原创 2013-08-01 18:34:48 · 751 阅读 · 0 评论 -
1.pthread_create()初体验
#include #include #include void *sayhello(void *arg){printf("hello, world! I'm son\n");}int main(void){pthread_t son;pthread_create(&son, NULL, sayhello, NULL);printf("hello, wor原创 2013-08-01 17:49:57 · 7205 阅读 · 2 评论