У меня есть класс, который хранит несколько строк и целых чисел.Эти значения постоянно обновляются моей программой.
В этой же программе у меня также есть простой сокет-сервер, который обрабатывает входящие запросы на данные, содержащиеся в объекте моего класса.Поскольку код сервера содержит цикл while(true)
, я предполагаю, что мне нужно поместить код в отдельный поток.Иначе ничего не будет выполнено, как только я войду в этот цикл?Затем я передам ссылку на мой класс потоку сервера, чтобы можно было получить значения.
static ServerSocket socket1;
static Socket connection;
while (true) {
connection = socket1.accept();
...
}
В любом случае, мне интересно, что если бы я создал отдельный поток сервера, я мог быв вопросах синхронизации.Когда в моей программе выполняется определенное условие, члены класса обновляются.Я не хотел бы, чтобы сервер мог читать значения, если они в настоящее время находятся в процессе обновления.Как я могу сделать это?