Задача решена, код не прикрепится. Решил довольно быстро, но не понял ничего.
Либо я слишком плохо понял тему многопоточности, либо либо...
Мы же не создаём множества нитей, которые вызывают методы по работе с allPeople или, которые ещё как-то его изменяют.
Вот условие и кусок кода, чтобы освежить память
package com.javarush.task.task17.task1711;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Locale;
/*
CRUD 2
*/
public class Solution {
public static volatile List<Person> allPeople = new ArrayList<Person>();
static {
allPeople.add(Person.createMale("Иванов Иван", new Date())); //сегодня родился id=0
allPeople.add(Person.createMale("Петров Петр", new Date())); //сегодня родился id=1
}
public static void main(String[] args) throws Exception {
int id;
String name;
String sex;
Date bd;
SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy", Locale.ENGLISH);
switch (args[0]) {
case ("-c"):
synchronized (allPeople) {
for (int i = 1; i < args.length; i += 3) {
name = args[i];
sex = args[i + 1];
bd = dateFormat.parse(args[i + 2]);
create(name, sex, bd);
}
}
break;
case ("-u"):
synchronized (allPeople) {
for (int i = 1; i < args.length; i += 4) {
id = Integer.parseInt(args[i]);
name = args[i + 1];
sex = args[i + 2];
bd = dateFormat.parse(args[i + 3]);
update(id, name, sex, bd);
}
}
break;..........