Мини введение. Убился, решая две бонусные задачи CrUD 17 лвла. Готов был задушить составителей этих задач, но оба раза не принималось по моей вине (тупо забывал убрать код для тестирования кода :)). Так что, разрабы, извините, если что, проклятия с вас снял)) Но не об этом сейчас... Проблема. Хочется с людьми поспорить на тему: какие методы нуждаются в синхронизации, в синхронизации по классу или его объекту или вообще по чему-нибудь ещё))) Проштудировал лекции 17 уровня, читал главу про трэды Эккеля (ну и мудрёно пишет, философ), но мог что пропустить, поэтому не сильно пинайте) Для примера возьмём ту самую бонусную задачу CrUD Batch. Код не ищите, всё нужное сейчас здесь будет)) Есть там список, поле класса: public static List allPeople = new ArrayList(); Не вдаваясь в подробности, скажу, что список редактируется числом методов (ну или просто используется ими). Начал я вроде как книгу писать, но в принципе на этом повествование заканчивается. Вот вам эти методы, прошу объяснить, какие из них и как нужно синхронизировать (ну или хотя бы ткните в какую-нибудь ссылку носом))). public static void create(String name, String sex, String bd) throws ParseException { if (sex.equals("м")) allPeople.add(Person.createMale(name, inFormat.parse(bd))); else if (sex.equals("ж")) allPeople.add(Person.createFemale(name, inFormat.parse(bd))); System.out.println(allPeople.size() - 1); } public static void update(int id, String name, String sex, String bd) throws ParseException { if (sex.equals("м")) { allPeople.get(id).setName(name); allPeople.get(id).setSex(Sex.MALE); allPeople.get(id).setBirthDay(inFormat.parse(bd)); } else if (sex.equals("ж")) { allPeople.get(id).setName(name); allPeople.get(id).setSex(Sex.FEMALE); allPeople.get(id).setBirthDay(inFormat.parse(bd)); } } public static void delete(int id) { allPeople.get(id).setBirthDay(null); } public static void info(int id) { System.out.println(allPeople.get(id).getName() + (allPeople.get(id).getSex().equals(Sex.MALE) ? " м " : " ж ") + outFormat.format(allPeople.get(id).getBirthDay())); }