我有一个资源池(其实就是内存块啦),每块内存都有一个可用标志(比如小于2就可以使用,大于2表示已占用),在我的程序里对于同一块内存有2个以上的线程在操作(操作不同地方,所以没有问题),现在的问题是,这些线程最后一个完成处理的,必须保证把这块内存再归还到资源池中去,这些线程的结束顺序不定,这次A线程先结束,下次可能是B线程先结束,兄弟迂钝,想破脑子还想不通怎么实现资源的无冲突释放,也就是说最好是后结束的线程来释放(咦,它怎么知道它是最后一个呢),请哪位高人来指点一下,假设这块内存是一个大结构体,可以放一些标志字段。
内存池 的作用就是这样到你都不用的时候 再整个释放掉可以考虑用计数器 -- 这个计数器对所有线程对任意一块的使用标识 用了就+1 用楼上说的Inter...
不用了就-1 当然了 还要设置你里面说的那个标志位。。你可以定时 去查看这个计数器的值 为0 就。
我的线程也是从线程池里临时唤醒的,也就是说内存块和线程之间其实没有关系,更重要的是,我的这些线程都不能阻塞太长时间,因为它们都是为异步操作服务的,需要尽快响应,所以不能等事件或者semaphore等东东,用interlockedXXX会不会堵住呢