能不能用临界区实现一个read-write lock 我能不能把线程的写操作放在临界区中,而读操作不放在临界区中,用这样的方式实现一个read-write lock?谢谢。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 请楼主想一下这种情况:线程A对List进行遍历处理 for i:=0 to list.Count-1 do begin //处理list[i] end;线程B删除List中的元素。那么A就会访问被B删除的元素和释放的内存。 这我之前没有想到,看来用临界区来实现理论是可行的,不过要不同情况区别看待,比如读写一个Integer或string,应该是可行的,如果是读写一个容器,可能是会出大麻烦。谢谢zhouzuoji。 信号量貌似不能做read-write lock。如果用人工复位的事件再搭配一个能表现读取计数的变量貌似可以实现一个简单的read-write lock。不过还未仔细研究过。 请问QQ群发软件是外挂吗,是否违法? delphi 中的combobox 问题 chart统计图形? 谁能帮我解释一下这几个API函数的用法? 文件调用 100分求助解决下面的问题!!!!! treeview控件中items.getnode函数的参数是HTREEITEM类型的,可没有这种类型啊 急救!!我的DELPHI怎么了? 如何实现将一系列信息写入MEMO中,每种信息分行实现? Socket通讯和HTTP通讯方式有什么利弊? DELPHI7.0控件事件的屏蔽与打开方法? 如何在stringgrid中屏蔽滚轮滑动事件???
线程A对List进行遍历处理
for i:=0 to list.Count-1 do
begin
//处理list[i]
end;线程B删除List中的元素。那么A就会访问被B删除的元素和释放的内存。
信号量貌似不能做read-write lock。
如果用人工复位的事件再搭配一个能表现读取计数的变量貌似可以实现一个简单的read-write lock。不过还未仔细研究过。