
线程
meetings
这个作者很懒,什么都没留下…
展开
-
对线程的深入学习(三)
1. 线程执行轨迹1) 同步方式(非分离状态):创建线程之后调用pthread_join函数等待其终止,并释放线程资源。2) 异步方式(分离状态):无需创建者等待,线程终止后自行释放资源int pthread_detach (pthread_t thread); 使thread参数所标识的线程进入分离(DETACHED)状态。处于分离状态的线程终止后自动释放线程资源,且原创 2015-07-30 22:53:46 · 716 阅读 · 0 评论 -
对线程的深入学习(二)
验证怎么向线程中传递参数:#include #include #include #include #include #include #define PAI 3.14159void* thread_area (void* arg) { double r = *(double*)arg; *(double*)arg = PAI * r * r; return NU原创 2015-07-30 21:59:41 · 715 阅读 · 0 评论 -
对线程的深入学习(一)
1. 创建线程int pthread_create (pthread_t* restrict thread, const pthread_attr_t* restrict attr, void* (*start_routine) (void*), void* restrict原创 2015-07-30 18:39:21 · 964 阅读 · 0 评论 -
线程同步---互斥量mutex
1. 问题引入:开两个线程同时对一个全局变量10万次做自加,结果会如何?#include #include #include unsigned int g_cn = 0;void* thread_proc (void* arg) { unsigned int i; for (i = 0; i < 100000; i++) ++g_cn; return NULL;}原创 2015-08-02 22:07:45 · 741 阅读 · 0 评论 -
线程同步---信号量(无名)
1. 有名信号量&无名信号量 在POSIX标准中,信号量分两种,一种是无名信号量,一种是有名信号量。无名信号量只用于线程间的同步,有名信号量只用于进程间通信。信号量是属于POSIX:SEM的,不是属于POSIX:THR的,需要的文件头是。两者的共同点都是相当于计数器,用于限制多个进程对有限共享资源的访问2. 相关函数1)创建信号量int sem_init (sem_原创 2015-08-03 13:14:46 · 1893 阅读 · 0 评论 -
线程同步---条件变量
1. 问题引入:互斥锁问题,假设现在有两个资源A和B,一个线程先拿A再拿B,另一个则相反,这样导致的问题就是死锁,即两个线程无休止的互相等待#include #include #include #include pthread_mutex_t g_mtxa = PTHREAD_MUTEX_INITIALIZER;pthread_mutex_t g_mtxb = PTHREAD_MU原创 2015-08-03 15:58:37 · 1737 阅读 · 1 评论