网站系统建设招标,南昌网站网站建设,企业网站的种类,阿里云网站建设套餐一般我们写的程序都是以单个进程的方式来运行的#xff0c;比较少涉及到多进程。特别是在windows下#xff0c;因为Windows是按照线程来分配CPU时间片的#xff0c;线程是最小的调度单位#xff0c;所以在Windows下更多的用到多线程#xff0c;在同一个进程里创建多个线程…一般我们写的程序都是以单个进程的方式来运行的比较少涉及到多进程。特别是在windows下因为Windows是按照线程来分配CPU时间片的线程是最小的调度单位所以在Windows下更多的用到多线程在同一个进程里创建多个线程来执行不同的任务达到充分利用CPU的目的。线程之间可以共享进程的资源比如内存、变量但是多线程有一个不好的地方由于这些线程是在同一个进程空间里执行所以只要一个线程奔溃整个进程也就奔溃了程序就退出了。多进程由于是在不同的进程空间里一个进程奔溃不会影响到其它的进程但是进程之间要交换信息的话就比较麻烦了不像多线程可以简单的通过一个全局变量来通讯。为了解决进程间交换信息的问题所以操作系统提供了进程间通讯(IPC)的技术。1、管道(Pipe)一个进程往管道里写数据另一个进程从管道里取数据。管道又可以分为匿名管道匿名管道只能在父、子进程之间通讯。还有一种命名管道(named pipes)Linux下叫做FIFO命名管道可以在任意进程之间通讯。2、油槽(Slot)Linux下叫做消息队列(Message)。就像我们日常通过邮局寄送信件。一个进程寄送另一个进程接收。3、消息(Message)Linux下叫做信号(Signal)。Windows是消息驱动的进程可以调用WIN32 API函数SendMessage或者PostMessage向另一个进程发送消息Windows系统也可以向进程发送消息。Linux下可以通过kill、raise、alarm、pause这些信号处理系统调用来实现。4、共享内存(Shared Memory)进程之间通过共享一块内存的方式来交换数据。5、Socket通常我们使用socket来进行网络通讯一方作为客户机另一方作为服务器。同样的socket也可以作为进程之间通讯的一种方式。以上方式是Windows和Linux共有的通讯方式。Windows下进程之间还可以通过系统剪贴板的方式来通讯一个进程把数据复制到剪贴板另一个进程把数据从剪贴板上粘贴过来。其实除了以上这些比较常用的通讯方式个人认为还可以通过文件的方式。一个进程把数据写入文件另一个进程从文件里读取数据。当然还可以通过一个中间件的方式比如Windows下的msmq(消息队列)中间件Apache上也提供了一个用Java写的开源消息中间件Apache ActiveMQ。转载于:https://www.cnblogs.com/weiqubo/archive/2011/03/08/1976865.html