Создает ли новый актор из существующего поточно-ориентированного?

Как уже было сказано несколько раз здесь, вы можете создать новый поток (поместив долгое вычисление в Actor {} block) внутри актора, и порожденные вычисления будут безопасно выполняться в том же пуле потоков (используемом планировщиком акторов).

actor{
    var i = 0
    case msg => actor {
        // computation
        i = i + 1  // is `i` still thread safe?
                   // looks like it can be access simultaneosly from 2 two threads now
                   // should I make it @volatile?
    } 
    reply(i) 
}

Однако будет ли он потокобезопасным и будет ли это следовать в в целом оригинальный дизайн, Какова стоимость вставки в набор (например, HashSet) по сравнению со списком (например, ArrayList)? Мне кажется, что дубликат ...

Я подумываю о заполнении коллекции большим количеством уникальных объектов. Какова стоимость вставки в набор (скажем, HashSet) по сравнению со списком (скажем, ArrayList)?

Я считаю, что удаление дубликатов в наборах может вызвать небольшие накладные расходы.

10
задан Will 18 May 2011 в 11:52
поделиться