![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux下的C++
九月丫头
Qt、C/C++、MFC、ruby、java、lua、python
展开
-
Linux下线程实现
1.线程概述进程是系统中程序执行和资源分配的基本单位。每个进程有自己的数据段、代码段和堆栈段。线程通常叫做轻型的进程。线程是在共享内存空间中并发执行的多道执行路径,他们共享一个进程的资源。因为线程和进程比起来很小,所以相对来说,线程花费更少的CPU资源。2.线程创建和退出在linux中,一般采用Pthread线程库实现线程的访问与控制,由POSIX提出,具有良好的可移植性。原创 2012-08-16 22:45:20 · 790 阅读 · 0 评论 -
Linux进程间通信IPC(一)-- pipe
进程间通信有如下一些目的:1.数据传输:一个进程需要将它的数据发送给另一个进程,发送的数据量在一个字节到几兆字节之间。2.共享数据:多个进程想要操作共享数据,一个进程对共享数据的修改,别的进程应该立刻看到。3.通知事件:一个进程需要向另一个或一组进程发送消息,通知它(它们)发生了某种事件(如进程终止时要通知父进程)。4.资源共享:多个进程之间共享同样的资源。为了作到这一点,需要内核原创 2012-08-15 20:32:28 · 1709 阅读 · 0 评论 -
Linux进程间通信IPC(六)--- socket
套接字套接字实现进程间通信可用于网络编程,两个进程通过socket套接字进行收发数据的通信。下面实现一个简单的局域网群聊天室实例:#include #include #include #include #include #include using namespace std;int main(int argc,char* argv[]){ in原创 2012-08-15 21:58:44 · 2454 阅读 · 0 评论 -
Linux进程间通信IPC(三)--- signal
信号通信信号是软件中断。信号(signal)机制是Unix系统中最为古老的进程之间的通信机制。它用于在一个或多个进程之间传递异步信号。很多条件可以产生一个信号,当用户按某些终端键时,产生信号。在终端上按DELETE键通常产生中断信号(SIGINT)。这是停止一个已失去控制程序的方法。 硬件异常产生信号:除数为0、无效的存储访问等等。这些条件通常由硬件检测到,并将其通知内核。然后内核为该原创 2012-08-15 21:19:35 · 2880 阅读 · 0 评论 -
Linux进程间通信IPC(四)--- shmget
共享内存共享内存区域是被多个进程共享的一部分物理内存。如果多个进程都把该内存区域映射到自己的虚拟地址空间,则这些进程就都可以直接访问该共享内存区域,从而可以通过该区域进行通信。共享内存是进程间共享数据的一种最快的方法,一个进程向共享内存区域写入了数据,共享这个内存区域的所有进程就可以立刻看到其中的内容。共享内存实现分为两个步骤: 一、创建共享内存,使用shmget函数。 二、映原创 2012-08-15 21:35:02 · 2528 阅读 · 0 评论 -
Linux进程间通信IPC(五)-- msgget
消息队列消息队列就是消息的一个链表,它允许一个或多个进程向它写消息,一个或多个进程从中读消息。具有一定的FIFO的特性,但是可实现消息的随即查询。这些消息存在于内核中,由“队列ID”来标识。 消息队列的实现包括创建和打开队列、添加消息、读取消息和控制消息队列这四种操作。 msgget:创建和打开队列,其消息数量受系统限制。 msgsnd:添加消息,将消息添加到消息队列尾部。原创 2012-08-15 21:44:00 · 7906 阅读 · 2 评论 -
Linux进程间通信IPC(二)-- FIFO
命名管道(FIFO)命名管道和一般的管道基本相同,但也有一些显著的不同:1.命名管道是在文件系统中作为一个特殊的设备文件而存在的。2.不同祖先的进程之间可以通过管道共享数据。3.当共享管道的进程执行完所有的I / O操作以后,命名管道将继续保存在文件系统中以便以后使用。4.普通管道只能由相关进程使用,它们共同的祖先进程创建了管道。但是,通过FIFO,不相关的进程也能交换数据。原创 2012-08-15 21:04:22 · 727 阅读 · 0 评论