在多线程应用程序中,有些情况下等待其他线程是不可避免的,或者是理想的。正确执行这种等待指令序列对多线程的可扩展性和能效都很重要。可扩展性可以用总吞吐量和公平性来衡量。公平性是指所有参与竞争的线程都能平等地分享所竞争的资源。公平性是一个重要但经常被忽视的特性,如果公平性较差,一些线程可能永远处于饥饿状态,从而导致尾部延迟过高。
本博文介绍了针对 Armv8+ 架构的不同用户空间延迟和等待实现方法,并推荐了提高吞吐量和公平访问共享资源的最佳实践。
作者:Ola Liljedahl
文章来源:https://community.arm.com/arm-community-blogs/b/architectures-and-processors-blog/posts/multi-threaded-applications-arm
欢迎大家点赞留言,更多 Arm 技术文章动态请关注极术社区 Arm 技术专栏欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。