多进程与多线程通信

转载 2016年06月01日 22:33:07
引入线程的好处
(1)易于调度。
(2)提高并发性。通过线程可方便有效地实现并发性。进程可创建多个线程来执行同一程序的不同部分。
(3)开销少。创建线程比创建进程要快,所需开销很少。
(4)利于充分发挥多处理器的功能。通过创建多线程进程(即一个进程可具有两个或更多个线程),每个线程在一个处理器上运行,从而实现应用程序的并发性,使每个处理器都得到充分运行。
进程和线程的关系:
(1)一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程。
(2)资源分配给进程,同一进程的所有线程共享该进程的所有资源。
(3)处理机分给线程,即真正在处理机上运行的是线程。
(4)线程在执行过程中,需要协作同步。不同进程的线程间要利用消息通信的办法实现同步。
线程是指进程内的一个执行单元,也是进程内的可调度实体.

进程间的通信方式:

1.管道(pipe)及有名管道(named pipe):

管道可用于具有亲缘关系的父子进程间的通信,有名管道除了具有管道所具有的功能外,它还允许无亲缘关系进程间的通信。

2.信号(signal):

信号是在软件层次上对中断机制的一种模拟,它是比较复杂的通信方式,用于通知进程有某事件发生,一个进程收到一个信号与处理器收到一个中断请求效果上可以说是一致的。

3.消息队列(message queue):

消息队列是消息的链接表,它克服了上两种通信方式中信号量有限的缺点,具有写权限得进程可以按照一定得规则向消息队列中添加新信息;对消息队列有读权限得进程则可以从消息队列中读取信息。

4.共享内存(shared memory):

可以说这是最有用的进程间通信方式。它使得多个进程可以访问同一块内存空间,不同进程可以及时看到对方进程中对共享内存中数据得更新。这种方式需要依靠某种同步操作,如互斥锁和信号量等。

5.信号量(semaphore):

信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它常作为一种锁机制,防止某进程正在访问共享资源时,其他进程也访问该资源。主要作为进程之间及同一种进程的不同线程之间得同步和互斥手段。

6.套接字(socket);

这是一种更为一般得进程间通信机制,它可用于网络中不同机器之间的进程间通信,应用非常广泛。

      线程间的通信方式
1. 锁机制:包括互斥锁、条件变量、读写锁
   *互斥锁提供了以排他方式防止数据结构被并发修改的方法。
   *读写锁允许多个线程同时读共享数据,而对写操作是互斥的。
   *条件变量可以以原子的方式阻塞进程,直到某个特定条件为真为止。对条件的测试是在互斥锁的保护下进行的。条件变量始终与互斥锁一起使用。
2. 信号量机制(Semaphore):包括无名线程信号量和命名线程信号量
3. 信号机制(Signal):类似进程间的信号处理
    线程间的通信目的主要是用于线程同步,所以线程没有像进程通信中的用于数据交换的通信机制。

相关文章推荐

多进程,多线程在 Window 和 Unix 下的通信,同步与互斥

Window 环境: 1. 多进程通信:匿名管道,命名管道,共享内存,文件映射,邮件槽,剪贴板,动态数据交换,对象连接和嵌入,动态连接库,远程过程调用,NetBios函数,Sockets, WM_C...

Linux下TCP多进程/多线程套接字通信

上篇文章简单的介绍了一下Linux下套接字通信的相关知识:  http://blog.csdn.net/qq_29503203/article/details/60961537 但是存在一个缺陷...

多线程之间及多进程间的通信

线程间通信 window平台: 方式一:                 全局变量volatile 方式二:...

Python 中的多线程,多进程,并发,并行,同步,通信

本文简单介绍了Python中并发和并行的机理,如何实现并发和并,以及一些多线程,多进程之间通信和同步的问题...

多线程之间及多进程间的通信

基本概念 ++++++++++++++++++++++++++++++++++++++++++++++++ 进程和线程的关系: (1)一个线程只能属于一个进程,而一个进程可以有多个线...

linux下多进程多线程写文件

  • 2015年10月04日 18:17
  • 4KB
  • 下载

unix多线程/多进程编程

  • 2014年06月19日 18:13
  • 32KB
  • 下载

多进程和多线程之间的通信方式及通信实现步骤小结

多进程和多线程之间的通信方式及通信实现步骤小结
  • Ssecond
  • Ssecond
  • 2016年10月02日 00:15
  • 1825

多线程多进程

  • 2013年04月02日 21:33
  • 24KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:多进程与多线程通信
举报原因:
原因补充:

(最多只允许输入30个字)