Но как потоки решили, какие данные читать?
Это не определено. Элементы будут прочитаны в недетерминированном порядке c. Вот почему не рекомендуется использовать многопоточный шаг, когда порядок чтения между записями имеет значение.
В этом случае будет один экземпляр Reader и Writer, который будет использоваться совместно потоки? Если да, то любой ресурс уровня класса не является потокобезопасным?
Да, они будут разделены между потоками. Javado c каждого читателя / писателя упоминает, является ли читатель / писатель потокобезопасным или нет.
Для получения дополнительной информации, пожалуйста, обратитесь к разделу справочного руководства Многопоточный шаг документация.