线程通信和进程通信有什么区别啊
------解决方案--------------------------------------------------------
进程至少包括一个主线程,还有工作线程
狭隘的讲:线程通信就是进程范围内主线程与工作线程 或者 工作线程之间的通信
进程通信,是进程A(可以理解为主线程) 与 进程B(可以理解为主线程)之间的通信
------解决方案--------------------------------------------------------
一个应用程序一般就是一个进程,一般对应你的一个可执行exe项目,这个项目里可以定义很多全局变量,然后在这个exe里可以开多个线程,这些线程可以通讯,可以使用这些全局变量进行数据交换(当然还有其他方法)。但是进程间却不行,要通讯就要使用邮槽,共享内存,命名管道等方法,一个进程中定义的全局变量也不能再另一个进程里用,因为他们有不同的资源块。
------解决方案--------------------------------------------------------
这个 同步 的概念都是一至的. 不论是进程还是线程.
不同在于所采用的同步方式, 进程的同步方式是线程的同步方式的子集. 换句话说, 进程之间的同步方式会比线程之间同步方式选择小. 就这样而已..
------解决方案--------------------------------------------------------
线程通信一般是指同一进程内的线程进行通讯,由于在同一进程内,共享地址空间,因此交互比较容易,全局变量之类的都能起到作用。
进程通信一般是指不同进程间的线程进行通讯,由于地址空间不同,因此需要使用操作系统相关机制进行“中转”,比如共享文件、管道、SOCKET。
------解决方案--------------------------------------------------------
没有什么不同。
关键是对同步数据处理不同,前者共享一个进程的内存,
后者需要共享内存都技术实现。
------解决方案--------------------------------------------------------
------解决方案--------------------------------------------------------
个人理解:
线程通信:消息,回调函数等
进程通信: 主要有Socket,邮件槽,命名管道等。