Как уже было сказано несколько раз здесь ранее, вы можете создать новый поток (помещая вычисления с длительной обработкой в блок actor{}
) внутри субъекта, и порожденные вычисления будут безопасно выполняться в том же пуле потоков (используетсяпланировщик актеров).
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)
}
Однако будет ли он поточно-ориентированным и будет ли он следовать, в общем, оригинальному дизайну, в котором говорится, что только один поток в данный момент может работать сактер?