带有HEAP_NO_SERIALIZE标志的heap怎么保证heap的一致性?
Windows内核
带有HEAP_NO_SERIALIZE标志的heap怎么保证heap的一致性?
Thomson
2010-05-11, 01:37 上午
带有这个标志,应该是有使用heap lock了. 多线程操作会不会有问题?
Re: 带有HEAP_NO_SERIALIZE标志的heap怎么保证heap的一致性?
格蠹老雷
2010-05-11, 07:46 上午
可以用一些“设计模式”,比如堆句柄只在有限的范围内可见,在这个有限的范围内,所有操作是序列化的(防止重入的)。
或者使用自己维护的同步对象...
Re: 带有HEAP_NO_SERIALIZE标志的heap怎么保证heap的一致性?
Thomson
2010-05-11, 11:47 上午
谢谢.
这是不是说,如果用HEAP_NO_SERIALIZE创建的heap,如果上层code没做好同步,是存在一致性问题的?
Re: 带有HEAP_NO_SERIALIZE标志的heap怎么保证heap的一致性?
格蠹老雷
2010-05-17, 21:42 下午
是的,如果设了这个标志,再让多个线程同时使用这个堆,那么是有问题的。