进程与线程及其通信

1. 进程与进程通信:

        进程是装入内存并准备执行的程序,每个进程都有私有的虚拟地址空间,由代码、数据以及它可利用的系统资源组成。多进程/多线程是Windows系统的一个基本特征。

常见的通信方式:

    1. 管道 pipo:管道是一种半双工通信方式,数据只能单向流动,且只能在有亲缘关系的进程间使用(父子进程);

    2. 命名管道FIFO:也是半双工通信方式,允许无亲缘关系的进程间通信;

    3. 消息队列:是由消息队列的链表存放在内核中,并由消息队列标识符标识。克服了信号传递信息少,管道只能承载无格式字节流以及缓冲区受限等缺点;

    4. 共享内存:就是映射一段能被其他进程所访问的内存,这段共享内存由一个进程创建,但多个进程都可以访问,共享内存最快的是IPC方式,是针对其他进程间通信方式运行效率低而专门设计的;

    5. 信号量:信号量是一个计数器,可以控制多个进程对共享资源的访问,它作为一种锁机制,防止某一进程在访问资源时,其他进程也访问该资源。因此主要作为进程间以及同一进程内不同线程之间的同步手段;

    6. 套接字:套接口也是一种进程间通信机制;

    7. 信号:信号是一种比较复杂的通信方式,用于通知接收进程某一事件已经发生。


2. 线程同步的方式:互斥锁和信号量


3. 多线程:多线程就是多条执行信息流“同时”执行,且他们之间互不干扰;

        线程通信:多个线程在处理同一个资源,并且任务不同时,需要线程通信来帮助解决线程之间对同一个变量的使用或操作,就是多个线程在操作同一份数据时,避免对同一变量的争夺。

        线程同步机制:事件、信号量、互斥量、临界区。



        并发:是指同一时刻只能有一条指令(一个进程或一个线程)运行,但是由于CPU轮转执行的效率很高,在宏观上看就有多条指令同时执行的效果。

        并行:就是在同一时刻,有多条指令在同一处理机上同时执行。






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值