进程同步:在多道程序环境下,进程是并发执行的,不同进程之间存在着不同的相互制约关系。
具有同步关系的一组并发进程称为合作进程,合作进程间互相发送的信号称为消息或事件。
如果对一个消息或事件赋以唯一的消息名,则可用过程wait(消息名)表示进程等待合作进程发来的消息,而用过程signa表示向合作进程发送消息。
等待对象的同步锁,需要获得该对象的同步锁才可以调用这个方法,否则后收到一个错误信号,这个是运行时异常。
调用这个方法后,就放弃了这个同步锁了。
如果不带参数的wait方法就只有等别人唤醒了,如果带一个参数的话就设置等待最长时间,过了这个时间即使没有人唤醒这个线程也不再等待。
进程:是指可与其他程序并行执行的程序的一次执行过程,是系统进行资源分配和高度的基本单位。
进程的组成:由程序块、进程控制块和数据块三部分组成。
进程有三种状态:就绪状态、运行状态和等待状态。
进程在早期面向进程设计的计算机结构中,进程是程序的基本执行实体,在当代面向线程设计的计算机结构中,进程是线程的容器。
程序是指令、数据及其组织形式的描述,进程是程序的实体。
它可以申请和拥有系统资源,是一个动态的概念,是一个活动的实体。
它不只是程序的代码,还包括当前的活动,通过程序计数器的值和处理寄存器的内容来表示。
本来进程之间是相互独立的。
但是由于不同的进程之间可能要共享某些信息,所以就必须要有通讯来实现进程间的互斥和同步。
比如说共享同一块内存、管道、消息队列、信号量等等就是实现这一过程的手段,相当于移动公司在打电话的作用。
进程间通信可以通过两种基本方式实现:
1.利用共享内存区域实现数据或代码段的共享存取;
2.利用系统内核提供的进程间通信工具实现,IPC是由消息传递系统提供的。
它又可以划分为直接通信和间接通信。
前者需要通信双方明确命令接收者和发送者,而后者通过端口或邮箱进行发送。