Я думаю, клонирование происходит быстрее, потому что:
Когда вы клонируете, вы создаете объект из другого, создавая его экземпляр и атрибуты.
Когда вы используете потоки, вы сериализуете объект и десериализуете его (тогда как Java также должна создать экземпляр объекта). Поэтому, когда вы используете потоки, у вас возникают накладные расходы на сериализацию объектов.
Конечно, реализация clone () не должна делать что-то необычное, что увеличивает время на копирование объектов. Клонирование объекта с массивами, примитивами и строками не должно занимать так много времени.