![]() |
1
2
一种方法是使用 RAII :
|
![]() |
2
1
IMHO,如果你的目标是防止用户仅在缓冲区被锁定时访问缓冲区,那么你正在进行一场棘手的战斗。考虑用户是否:
为了允许用户访问缓冲区,您必须返回一个对缓冲区的引用,他们总是会错误地将其保留到锁释放后。 也就是说,您可能可以这样做:
使用类似于:
这会强制用户将CMyBuffer对象包装在CMySynchronizedBuffer对象中,以获取其任何变化方法。因为它实际上不通过返回引用来提供对底层CMyBuffer对象的访问,所以它不应该给用户任何可以挂起的东西,也不应该在释放锁后进行修改。 |
![]() |
3
1
使用表示缓冲区的对象。
|
|
Ma Joonyoung · 粗粒度和细粒度链表的时间比较 1 年前 |
![]() |
user1700890 · 了解交互式代理Python API中的线程 2 年前 |
![]() |
AntonBoarf · 为什么要将实例变量指定给局部变量? 2 年前 |
![]() |
rhymes · 如何让线程操作相同的java列表 2 年前 |