Вопрос относительно быстрого интерфейса в C#

ConcurrentHashMap предпочтен, когда можно использовать его - хотя он требует, по крайней мере, Java 5.

Это разработано для масштабирования хорошо при использовании несколькими потоками. Производительность может быть незначительно более плохой, когда только единственный поток получает доступ к Карте за один раз, но значительно лучше когда несколько потоков получают доступ к карте одновременно.

я нашел запись в блоге , который воспроизводит таблицу от превосходного книжного Параллелизма Java На практике , который я полностью рекомендую.

Collections.synchronizedMap имеет смысл действительно, только если необходимо обернуть карту некоторыми другими характеристиками, возможно, своего рода заказанную карту, как TreeMap.

5
задан Jeff 20 August 2009 в 07:25
поделиться

2 ответа

Чтобы обеспечить соблюдение этого типа вещей, вам понадобится несколько типов (чтобы ограничить то, что доступно в каком контексте) - или, по крайней мере, несколько интерфейсов:

public class Fluently : IFluentlyDoes, IFluentlyIs
{
    public IFluentlyIs Is(string lhs)
    {
        return this;
    }
    public IFluentlyDoes Does(string lhs)
    {
        return this;
    }
    Fluently IFluentlyDoes.EqualTo(string rhs)
    {
        return this;
    }
    Fluently IFluentlyIs.LessThan(string rhs)
    {
        return this;
    }
    Fluently IFluentlyIs.GreaterThan(string rhs)
    {
        return this;
    }
}
public interface IFluentlyIs
{
    Fluently LessThan(string rhs);
    Fluently GreaterThan(string rhs);
}
public interface IFluentlyDoes
{    // grammar not included - this is just for illustration!
    Fluently EqualTo(string rhs);
}
9
ответ дан 14 December 2019 в 01:13
поделиться

Мое решение было бы

public class Fluently
{
    public FluentlyIs Is(string lhs)
    {
        return this;
    }
    public FluentlyDoes Does(string lhs)
    {
        return this;
    }
}

public class FluentlyIs
{
    FluentlyIs LessThan(string rhs)
    {
        return this;
    }
    FluentlyIs GreaterThan(string rhs)
    {
        return this;
    }
}

public class FluentlyDoes
{
    FluentlyDoes EqualTo(string rhs)
    {
        return this;
    }
}

Очень похоже на решение Гравелла, но, на мой взгляд, немного проще для понимания.

0
ответ дан 14 December 2019 в 01:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: