PING PONG 操作的个人理解

(1) ping pong操作最直观的理解应该是乒乓球。

球员A 与 球员B打乒乓球:

(1)B wait A打过来的球

(2)A 把球打给 B

(3)A wait B打过来的球

(4)B 把球打给 A

流程:(1)->(2)->(3)->(4)->(1)->(2)->(3)->(4)->(1)->(2)->(3)->(4)->(1)->(2)->(3)->(4)->。。。

A流程:(2)->(3)->(2)->(3)->(2)->(3)->(2)->(3)->(2)->(3)->。。。

B流程:(1)->(4)->(1)->(4)->(1)->(4)->(1)->(4)->(1)->(4)->。。。

球有两个方向:从A->B = 锁A,从B->A = 锁B。

对球的操作有两种:打球 = 解锁,等球 = 加锁。

A流程:解锁A->加锁B->解锁A->加锁B->解锁A->加锁B->解锁A->加锁B->...

B流程:加锁A->解锁B->加锁A->解锁B->加锁A->解锁B->加锁A->解锁B->...

按照上面的流程球桌上才会始终有一个球,如果A球员打球后没有等球又去打球,那么飞向B球员就会有两个球,B会来不及处理。

线程A:
functionA {
    while(1)
    {
        unlock A
        ...
        lock B
    }
}

线程B:
functionB {
    while(1)
    {
        lock A
        ...
        unlock B
    }
}

ping-pang 在异步FIFO中的应用

参考连接:

乒乓操作(Ping-Pong)的理解:为什么是另一种pipeline?_weixin_43701504的博客-CSDN博客

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值