随笔分类 - POSIX 多线程编程
摘要:线程间的内存可视性当线程调用怕thread——create时, 它所能看到的内存值也是它建立的线程能够看到的。任何在调用怕thread_create之后写入的数据,可能不会被建立的线程看到,即使写操作发生在启动新线程之前。当线程解锁互斥量时候看到的内存数据,同样也能被后来直接锁住(或通过等待条件变量...
阅读全文
摘要:概述等待条件变量总是返回锁住的互斥量。条件变量的作用是发送信号,而不是互斥。与条件变量相关的共享数据是“谓词”,如队列满或队列空条件。一个条件变量应该与一个谓词相关。如果一个条件变量与多个谓词相关,或者多个条件变量与一个谓词相关,有可能死锁。主线程(Main Thread) 声明和初始化需要同步的全...
阅读全文
摘要:互斥量互斥量(Mutex)是“mutual exclusion”的缩写。互斥量是实现线程同步,和保护同时写共享数据的主要方法。使用互斥量的典型顺序如下:1. 创建和初始一个互斥量 2. 多个线程尝试去锁定该互斥量 3. 仅有一个线程可以成功锁定改互斥量 4. 锁定成功的线程做一些处理 5. ...
阅读全文
摘要:1. pthread线程通过调用你提供的某些函数开始。这个“线程函数”应该只有一个void*型参数,并返回系统的类型。2. 通过向pthread_create函数传递线程函数的地址和线程函数调用的参数来参加线程。3. 线程可以通过pthread_self获取自己的ID。4. 除非线程的创建者或者线程...
阅读全文
摘要:一个简单的alarm实例errors.h头文件 1 #ifndef __ERRORS_H 2 #define __ERORRS_H 3 4 #include 5 #include 6 #include 7 #include 8 #include 9 10 #ifdef DEBUG11 #defin...
阅读全文
摘要:1. 基本概念一个Unix进程可以理解为一个线程加上地址空间、文件描述符和其他数据。异步表明事情相互独立发生, 除非有强加的依赖性。并发指实际可能是穿行发生的事情好像同时发生一样。并行指并发序列同时执行。线程安全是指代码能够被多个线程调用而不会产生灾难性后果。2. 共享数据——同步对象——互斥量——...
阅读全文

浙公网安备 33010602011771号