目录
https://www.cnblogs.com/lidabo/archive/2012/08/24/2654159.html
论1:线程和 进程间的通信问题。
操作系统的主要任务是管理计算机的软件、硬件资源。
线程间通信:由于多线程共享地址空间和数据空间,所以多个线程间的通信是一个线程的数据可以直接提供给其他线程使用,而不必通过操作系统(也就是内核的调度)。进程间的通信则不同,它的数据空间的独立性决定了它的通信相对比较复杂,需要通过操作系统。以前进程间的通信只能是单机版的,现在操作系统都继承了基于套接字(socket)的进程间的通信机制。这样进程间的通信就不局限于单台计算机了,实现了网络通信。
进程的通信机制 主要有:管道、有名管道、消息队列、信号量、共享空间、信号、套接字。
论2: 线程间通信
1.使用全局变量(窗体不适用)
对于标准类型的全局变量,我们建议使用volatile 修饰符,它告诉编译器无需对该变量作任何的优化,即无需将它放到一个寄存器中,并且该值可被外部改变。如果线程间所需传递的信息较复杂,我们可以定义一个结构,通过传递指向该结构的指针进行传递信息。
2.利用自定义消息(可适用于窗体)
用PostMessage()或SendMessage()消息传递函数.
3.使用事件内核对象(相当好用)