синхронизируется перед полем за пределами нового потока () - PullRequest
0 голосов
/ 06 июня 2018

Я хочу сделать часть асинхронной.Я добавил новый Thread () и добавил к нему код.Что нужно сделать с полями и методами снаружи?

public class Record {
    private String actionDetails;

    public void setActionDetails(String actionDetails) {
        this.actionDetails = actionDetails;
    }
}

public class Recorder {
    private Record record;

    public void record(Record record){
        this.record = record;
    }
}

public class Test {
    private static Recorder recorder = new Recorder();
    private static StringBuilder builder;

    public static void main(String[] args) {
        builder.append("Test");

        new Thread(() -> {
            final Record record = new Record();
            record.setActionDetails(builder.toString());
            recorder.record(record);
        }).start();
    }
}

Я думаю, что для рекордера, record (), setActionDetails () должны использовать синхронизированный модификатор и использовать StringBuffer вместо StringBuilder.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...