相同点:
(1)传递区间
队列、二值信号量、计数型信号量均可用在任务与任务,任务与中断之间进行消息传递
(2) 传递方式
创建队列--发送队列--接受队列
创建二值信号量--发送二值信号量--接受二值信号量
创建计数型信号量--发送计数型信号量--接受计数型信号量
不同点:
(1)阻塞方式
最主要的不同是队列在写队列和读队列过程中均可阻塞,信号量在释放过程中不可阻塞在获取过程中可阻塞。
(2)从队列概念
二值信号量相当于队列长度为1的信号量,只有0和1两种状态
计数型信号量相当于队列长度大于1的信号量
(3)从数据传递方式
队列满足先进先出FIFO的数据存储缓冲机制,相当于将数据拷贝到队列中进行传递。
而二值信号量数据的传递主要应用在互斥访问和任务之间的同步,确保在同一时间只有一个任务可以访问共享资源(互斥访问,即确保在同一时间只有一个进程或线程可以访问共享资源)。