如何防止一件物品被使用超过一定数量

本文关键字:何防止 一件 | 更新日期: 2023-09-27 18:04:47

尝试实现一个ConcurrentQueue,防止一个项目被使用超过特定的#次。例如,我想要一个User对象,它可以退出队列10次,之后,用户将注销并被处置。

显然很容易通过使用Dictionary并跟踪每个对象被使用的次数来实现,并与ConcurrentQueue结合使用。然而,只是想知道是否有人有任何整洁的想法来管理这个?

如何防止一件物品被使用超过一定数量

java:

interface Dequeable
{
    public int dequed();
}
class ConcurrentQueueImpl extends ConcurrentQueue
{
    ..................
    .................
    @override
    public Dequeable deque()
    {
        Dequeable obj=.................;
        **if(obj.dequed()>=10)**
        {
            // dispose off obj
            return null;
        }
        return obj;
    }
}
class SampleDequeableClass implements Dequeable
{
    private int dequedCounter=0;
    public int dequed()
    {
        dequedCounter++;
        if(dequedCounter>=10)
        {
            // log off this object...
        }
    }
}

创建自己的线程安全的Queue<T>,就像没有c# 4.0的日子一样。在其Dequeue方法中,记录使用计数。您不需要修改项目的原始类/接口。您可以使用另一个Dictionary<IFoo, int>作为使用计数器。