小威
...
摘要: 1.fetch (获取) 2.对于多线程的程序的访问冲突问题,,引入互斥锁来解决 3.初始化和销毁 函数原型 :#include int pthread_mutex_destroy(pthread_mutex_t *mutex); int pthread_mutex_init(pthread_mutex_t *restrict mutex, const pthread_mutexattr_t * restrict attr); pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; 加锁和解锁 函数原型 ... 阅读全文
posted @ 2013-09-16 18:35 小威_ 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 1.一个进程可以包含多个线程,线程是进程的子集 2.同一进程的多个线程共享同一个地址空间 共享资源 : 文件描述符表 每种信号的处理方式(SIG_IGN, SIG_DFL, 或者自定义的信号处理函数) 当前工作目录 用户id和组id 不共享资源 : 线程id 上下文, 包括寄存器的值, 程序计数器和栈指针 栈空间 errno变量 信号屏蔽字 调度优先级 3.在Linux上线程函数位于l... 阅读全文
posted @ 2013-09-16 18:16 小威_ 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 1.如果信号的处理动作是用户自定义函数, 在信号递达时就调用这个函数, 这称为捕捉信号 1.用户程序注册了SIGQUIT信号的处理函数sighandler。 2.当前正在执行 main函数, 这时发生中断或异常切换到内核 3.在中断处理完毕后要返回用户态的main函数之前检查到有信号SIGQUIT递达 4.内核决定返回用户态后不是恢复main函数的上下文继续执行,而是执行sighandler函数,sighandler和 main函数使用不同的堆栈空间, 它们之间不存在调用和被调用的关系, 是两个独立的控制流程 5.sig... 阅读全文
posted @ 2013-09-16 17:48 小威_ 阅读(155) 评论(0) 推荐(0) 编辑