Смешиваются потоки

 
 
 
Сообщения:3
Доброго дня всем!
Подскажите, где может быть проблема:
Имею сервер, к которому соединяются устройства по tcp socket, на каждое красиво создаётся поток. Соединившись, устройство призывается, сообщая свой UID. Далее в пакетах данных устройство шлёт свои координаты.
Раньше всё было ОК, но когда устройств стало под тысячу, эти координаты стали сохраняться под тем ID что нужно, но координаты не его. Совершенно. С разницей в сотни и километров.
Стал смотреть логи. Суть в том, что когда устройство потеряло связь и снова соединилось - тогда наиболее вероятна ситуация неверных данных. Но это не всегда. Хотя авторизовывается то правильно... Ощущение, что потоки где то смешиваются.
Никто с таким не сталкивался?
Изменен:30 мая 2018 16:50
 
 
Сообщения:856
Приветствую!
Смею предположить что вы используете shared data, т.е. глобальные данные, которые изменяются из разных потоков. Если это так, вы должны использовать синхронизацию.
 
 
Сообщения:3
То есть речь о global mutable state?
У меня такое есть, но не много, я понимаю суть таких проблем
Подскажите, а пулы исключают подобного рода сбои данных?
 
 
Сообщения:856
Пулы чего?
 
 
Сообщения:3
Альтернатива потокам
 
 
Сообщения:856
Не могу ничего сказать, так как не понимаю о чём вы говорите.
 
 
Сообщения:1560
Нужно код смотреть, есть ссылка на гитхаб или код самого класса?
 
Модераторы:Нет
Сейчас эту тему просматривают:Нет