- 博客(2)
- 收藏
- 关注
原创 MIT6.828 Homework6:Threads and Locking
此时每个bucket都有一个互斥锁,当执行put操作时,首先获取待处理bucket的锁,然后在完成后释放锁。这允许同时访问不同的bucket而不会相互冲突,可以使put操作在保持正确性的同时并行运行。可以看出,单线程与双线程完成时间大概相同,但是双线程做了两次get keys操作有效实现了并行;代码分析出put key时调用insert函数时,会将新的entry插入到链表的头部,即修改链表头部指针,导致错误。在put和get函数中插入lock和unlock语句,以便丢失的密钥数始终为0。
2023-10-28 21:05:31
132
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人