场景:
我想测试两台设备之间的通信。它们通过帧进行通信。
我启动应用程序(在设备 1上)并发送多个帧(每个帧包含一个唯一的 (int) ID)。设备 2接收每个帧并发送确认(并且只是回显 ID),否则它不会。(当框架丢失时)
当设备 1收到 ACK 时,我想比较发送和接收 ACK 所需的时间。
从环顾四周 ,我如何测量 Java 中经过的时间? System.nanoTime() 可能是监视经过时间的最佳方法。然而,根据经典的生产者-消费者模式,这一切都发生在不同的线程中,其中一个线程(在设备 1上)始终在读取,而另一个线程在管理进程(并且还写入帧)。现在感谢您对我的支持,我的问题是:
问题:现在的问题是:我需要将 ACK 帧中的唯一 ID 从读取线程传送到管理线程。我做了一些研究,这似乎是等待/通知系统的一个很好的候选者?或者也许我只需要一个包含每帧发送数据的共享数组?但是管理线程是如何知道它发生的呢?
背景我想比较这些时间,因为我想研究哪些因素会阻碍沟通。