本机异步网络通信执行快于同步指令

博客作者在调试代码时发现,尽管通常认为异步操作会晚于同步指令,但在某些情况下,本地网络传输的速度竟然比同步指令更快。这种情况在涉及网络通信的异步操作和同步状态更新时出现,例如发送数据后立即改变状态变量。这提醒开发者在编写代码时需要更加严谨。
摘要由CSDN通过智能技术生成

一般认为开启一个异步操作,执行起来会晚于后续的同步指令,起码晚于最近的一个同步指令

类似下面这种情况


bool isRecv = true;
byte[] data = new byte[] { 1 };
SendAsync(data);//发送
isRecv = false;

//接收
void OnRecv()
{
    isRecv = true;
}

正常来说,发送数据后,isRecv=false,应该跑在OnRecv中设置isRecv=true之前。

因为是网络通信,起码经过一定的传输时间。

但是调试的时候发现,偶尔会出现 isRecv=true 先设置了,也就是说本机网络传输,速度非常快,

比执行下一个同步指令还要快,尤其这个同步指令也不是耗时操作。

有点意外哈哈哈,记录一下,以后写代码严谨一点。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值