channel如何唤醒receiver?
💡
原文中文,约200字,阅读约需1分钟。
📝
内容提要
之前以为Rust的channel中,sender写入数据后会通过pthread_cond_signal()来唤醒receiver。但通过示例程序和strace执行发现,receiver被唤醒时没有发现系统调用。想知道是通过什么方法唤醒的,多线程间的唤醒是否可以不经过系统调用。
🎯
关键要点
- 作者原以为Rust的channel中,sender通过pthread_cond_signal()唤醒receiver。
- 通过示例程序和strace执行,发现receiver被唤醒时没有系统调用。
- 作者对唤醒机制产生疑问,想知道是否可以不经过系统调用进行多线程间的唤醒。
➡️