
线程/进程
Crazy_Tortoise
A Crazy Tortoise
展开
-
线程中CreateEvent和SetEvent及WaitForSingleObject的用法
首先介绍CreateEvent是创建windows事件的意思,作用主要用在判断线程退出,程锁定方面.CreateEvent函功能描述:创建或打开一个命名的或无名的事件对象.EVENT有两种状态:发信号,不发信号。 SetEvent/ResetEvent分别将EVENT置为这两种状态分别是发信号与不发信号。 WaitForSingleObject()等待,直到参数所指定的转载 2013-11-18 10:32:20 · 615 阅读 · 0 评论 -
Linux进程通信之管道和FIFO
原文地址:http://blog.youkuaiyun.com/anonymalias/article/details/9391743Linux进程间的通信可以简称为IPC(Interprocess Communication),前面说过的 Linux的同步工具也是属于IPC的一部分,这里我想说的是通常意义的进程间的实际数据通。1管道管道是最早的UNIX IPC,所有的UNIX转载 2014-07-25 18:46:13 · 889 阅读 · 0 评论 -
Linux进程同步之POSIX信号量
原文地址: http://blog.youkuaiyun.com/anonymalias/article/details/9219945POSIX信号量是属于POSIX标准系统接口定义的实时扩展部分。在SUS(Single UNIX Specification)单一规范中,定义的XSI IPC中也同样定义了人们通常称为System V信号量的系统接口。信号量作为进程间同步的工具是很常用的一转载 2014-07-25 18:47:56 · 656 阅读 · 0 评论 -
Linux进程通信之POSIX共享内存
原文地址:前面已经讨论过Linux下个各种进程间的通信方式:管道,FIFO,消息队列,他们的共同特点就是通过内核来进行通信(假设POSIX消息队列也是在内核中实现的,因为POSIX标准并没有限定它的实现方式)。向管道,FIFO,消息队列写入数据需要把数据从进程复制到内核,从这些IPC读取数据的时候又需要把数据从内核复制到进程。所以这种IPC方式往往需要2次在进程和内核之间进行数转载 2014-07-25 21:01:35 · 884 阅读 · 0 评论 -
孤儿进程与僵尸进程[总结]
1、前言 之前在看《unix环境高级编程》第八章进程时候,提到孤儿进程和僵尸进程,一直对这两个概念比较模糊。今天被人问到什么是孤儿进程和僵尸进程,会带来什么问题,怎么解决,我只停留在概念上面,没有深入,倍感惭愧。晚上回来google了一下,再次参考APUE,认真总结一下,加深理解。2、基本概念 我们知道在unix/linux中,正常情况下,子进程是通过父进程创建的,子进程在创建新的转载 2014-07-21 21:15:59 · 487 阅读 · 0 评论 -
linux进程间通信的几种机制的比较及适用场合
1.# 管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。# 有名管道 (named pipe) : 有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。# 信号量( semophore ) : 信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它常作为一种锁机制,防止某进程正转载 2014-03-10 23:20:16 · 756 阅读 · 0 评论 -
Linux的锁和条件变量用法 | pthread_mutex_lock | pthread_cond_signal
原文地址: http://hi.baidu.com/hehehehello/item/01e65ec5e3a46909c710b244本篇默认读者已经清楚多线程中的锁、互斥锁、条件变量基本概念及作用,本篇只讲怎么在C++里编程调用。互斥锁很简单,条件变量(多用于生产者-消费者模型)则细节较多,本文主要说它。主要涉及函数#includepthread转载 2014-03-11 13:03:34 · 1663 阅读 · 0 评论 -
Linux定时器的使用
使用定时器的目的无非是为了周期性的执行某一任务,或者是到了一个指定时间去执行某一个任务。要达到这一目的,一般有两个常见的比较有效的方法。一个是用linux内部的三个定时器,另一个是用sleep, usleep函数让进程睡眠一段时间,使用alarm定时发出一个信号,还有那就是用gettimeofday, difftime等自己来计算时间间隔,然后时间到了就执行某一任务,但是这种方法效率低,所以不常用转载 2014-03-05 14:31:12 · 784 阅读 · 0 评论 -
Qt的QWaitCondition
对生产者和消费者问题的另一个解决办法是使用QWaitCondition,它允许线程在一定条件下唤醒其他线程。其中wakeOne()函数在条件满足时随机唤醒一个等待线程,而wakeAll()函数则在条件满足时唤醒所有等待线程。1、bool wait (QMutex * mutex,unsigned long time = ULONG_MAX)1) 释放锁定的mutex 2)转载 2014-02-18 14:40:34 · 967 阅读 · 0 评论 -
服务器应用--双缓冲队列
原文地址: http://blog.youkuaiyun.com/markman101/article/details/7083078在服务器开发中 通常的做法是 把 逻辑处理线程和I/O处理线程分离。 逻辑处理线程:对接收的包进行逻辑处理。 I/0处理线程:网络数据的发送和接收,连接的建立和维护。 通常 逻辑处理线程和I/O处理线程是通过数据队列来交换数据,就是生转载 2013-11-18 00:28:35 · 1409 阅读 · 1 评论 -
Linux--线程编程
进程 系统中程序执行和资源分配的基本单位 每个进程有自己的数据段、代码段和堆栈段 在进行切换时需要有比较复杂的上下文切换 线程 减少处理机的空转时间,支持多处理器以及减少上下文切换开销, 比创建进程小很多 进程内独立的一条运行路线 处理器调度的最小单元,也称为轻量级进程可以对进程的内存空间和资源进行访问,并与同一进程中的其他线程共享 线程转载 2014-07-26 01:06:05 · 542 阅读 · 0 评论