Re[16]: Java vs C# vs C++
От: · Великобритания  
Дата: 07.10.15 09:53
Оценка:
Здравствуйте, alex_public, Вы писали:

_>·>Если нужна передача данных между тредами — нужен shared pointer, который использует lock (mutex?) — источник непредсказуемых жутких тормозов — для low latency не годится.


_>shared pointer нужен в случае параллельного доступа к данным из разных потоков с неизвестным заранее временем жизни. Это совсем не частный случай даже в системах с подобным параллельным доступом. А если использовать более продуманные архитектуры (типа той же модели акторов), то подобные вопросы не встают в принципе. Тем более, что при использование семантики перемещения модель акторов становится такой же эффективной, как и просто общая память (в варианте без блокировок).

Это не частный случай, а наиболее простая имплементация. Конечно, можно внимательно изучить, установить время жизни каждого объектика, но это сложно контролировать и тестировать, а в случае ошибки — undefined behaviour. В случае же java — самое страшное что будет — это latency spike из-за garbage collection, а не порча данных, как в случае ошибок с указателями.
Модель акторов — в первую очередь для упрощения параллелизма, а не low latency.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.