@Override
public void run() {
while (db.getNumLinesOfWantedType() >= wantedNum) {
webServiceFillDB();
}
// The thread terminates here when the database has enough lines.
}
Я поставил не ==
в условии, а >=
, поскольку, возможно, вы получите больше строк, чем вы хотите.
Даже если какой-то другой процесс или поток заполняетсяВ базе данных одновременно этот код действителен.Если нет другого процесса, заполняющего базу данных, вы могли бы просто выполнить цикл for, вызывающий веб-службу определенное количество раз, без проверки базы данных на каждом шаге.
Обратите внимание, что база данных является своего рода "синхронизирован "для начала: при проверке количества строк в базе данных вы получите текущую картинку.