powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Поток или метод
13 сообщений из 38, страница 2 из 2
Поток или метод
    #38411610
avp.mk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
buldozer01, SparkSafe?
Код: java
1.
2.
3.
4.
5.
6.
7.
public class TestRunStart {

    public static void main(String[] args) {
//      new TestRun("Spark доволен?").start();
        new Thread(new TestRun("Spark доволен?")).start();
    }
}


Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
//зачем здесь реализовывать Runnable (а не расширять Thread)? (если TestRun ни от кого не наследуется)
public class TestRun implements Runnable {

    private final String text;

    public TestRun() {
        this.text = null;
    }

    public TestRun(String text) {
        this.text = text;
    }

    @Override public void run() {
        if (text == null) {
            System.out.println("без аргумента");
        } else {
            try {
                while (true) {
                    System.out.println("c аргументом: " + text);
                    Thread.sleep(1000);
                }
            } catch (InterruptedException e) {}
        }
    }
}
...
Рейтинг: 0 / 0
Поток или метод
    #38411637
Фотография buldozer01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cdtyjv,

17.4.5. Happens-before Order

If x and y are actions of the same thread and x comes before y in program order, then hb(x, y).

If an action x synchronizes-with a following action y, then we also have hb(x, y).



любой последующий setText будет Hb с предыдущим
Ну и плюс thread.start конечно же обеспечит

Свеном признайся что ты ничерта про это не знал и побырому заботал после того как я тебе об этом сказал и теперь вот включил это в программу :)
...
Рейтинг: 0 / 0
Поток или метод
    #38411681
HoBTID
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buldozer01cdtyjv,

17.4.5. Happens-before Order

If x and y are actions of the same thread and x comes before y in program order, then hb(x, y).

If an action x synchronizes-with a following action y, then we also have hb(x, y).



любой последующий setText будет Hb с предыдущим
Ну и плюс thread.start конечно же обеспечит

Свеном признайся что ты ничерта про это не знал и побырому заботал после того как я тебе об этом сказал и теперь вот включил это в программу :)
Подскажите, зачем вызывать метод start(String text), который в свою очередь, вызовет метод start() класса Thread
в разных потоках ?

Когда из документации:
JDKpublic void start()
It is never legal to start a thread more than once. In particular, a thread may not be restarted once it has completed execution.

То есть метод ВООБЩЕ НЕЛЬЗЯ вызывать 2 раза,
но Вы предлагаете не просто вызвать его 2 раза, а еще и в разных потоках.
И потом рассказываете, что все будет нормально, из-за синхронизации.
Очень смешно
...
Рейтинг: 0 / 0
Поток или метод
    #38411693
Фотография buldozer01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HoBTIDbuldozer01cdtyjv,

17.4.5. Happens-before Order

If x and y are actions of the same thread and x comes before y in program order, then hb(x, y).

If an action x synchronizes-with a following action y, then we also have hb(x, y).



любой последующий setText будет Hb с предыдущим
Ну и плюс thread.start конечно же обеспечит

Свеном признайся что ты ничерта про это не знал и побырому заботал после того как я тебе об этом сказал и теперь вот включил это в программу :)
Подскажите, зачем вызывать метод start(String text), который в свою очередь, вызовет метод start() класса Thread
в разных потоках ?

Когда из документации:
JDKpublic void start()
It is never legal to start a thread more than once. In particular, a thread may not be restarted once it has completed execution.

То есть метод ВООБЩЕ НЕЛЬЗЯ вызывать 2 раза,
но Вы предлагаете не просто вызвать его 2 раза, а еще и в разных потоках.
И потом рассказываете, что все будет нормально, из-за синхронизации.
Очень смешно

Ай ай там же внутри еще и поток стартуют сразу же.

НЕ заметил каюсь :)
...
Рейтинг: 0 / 0
Поток или метод
    #38411745
HoBTID
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buldozer01Ай ай там же внутри еще и поток стартуют сразу же.

НЕ заметил каюсь :)
Все ошибаются, просто лучше объяснять, а не тыкать носом в ошибки :-)
...
Рейтинг: 0 / 0
Поток или метод
    #38411779
Фотография buldozer01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HoBTIDbuldozer01Ай ай там же внутри еще и поток стартуют сразу же.

НЕ заметил каюсь :)
Все ошибаются, просто лучше объяснять, а не тыкать носом в ошибки :-)

Ну моя ошибка то чисто номинальная
syncronized таки обеспечит hb читаем спеку.

А вот мсье Свеном боюсь даже не знал про то что слово final надо писать когда инициализируешь конструктор в многопотчном окружении.
...
Рейтинг: 0 / 0
Поток или метод
    #38411780
cdtyjv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buldozer01НЕ заметил каюсь :)Бывает. Такое часто случается с людьми, которые вместо того, что бы вести конструктивный разговор, начинают переходить на личности.
Ну да ладно, надеюсь, все ваши вопросы теперь сняты. Если нет - с радостью помогу вам разобраться, пишите.
...
Рейтинг: 0 / 0
Поток или метод
    #38411785
Фотография buldozer01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cdtyjv,

Свеном ты продолжаешь Pr войну а я тебе пытаюсь пояснить что моей ошибки по большому счету нет.

Я лишь говорил про связь syncrhonized И hb не вдаваясь в то что конкретно написано в setText.
...
Рейтинг: 0 / 0
Поток или метод
    #38411795
cdtyjv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buldozer01Ну моя ошибка то чисто номинальная
syncronized таки обеспечит hb читаем спеку.

А вот мсье Свеном боюсь даже не знал про то что слово final надо писать когда инициализируешь конструктор в многопотчном окружении.Нет, не можете вы все таки успокоиться.
Постараюсь разжевать. В рассматриваемом случае synchronized не обеспечивает happens-before. Почему? Да потому, что что бы было HB, необходимо иметь минимум два участка кода, участвующих в HB.
JLS нам говорит, что в HB устанавливается между двумя входами в критическую секцию, защищенную одним и тем же монитором. А в рассматриваемом примере мы вызовем start() один и только один раз . Следовательно, в synchronized секцию мы так же войдем только один раз. А следовательно, никакого HB там не будет, ибо его просто напросто не с чем устанавливать.

Поэтому, использование synchronized в том месте является ошибочным, и если его убрать, то ничего в коде не изменится. Такой код, как вы выражаетесь, "не прошел бы code review" у меня. А у вас в конторе он бы прошел?

Наконец, с final вам уже давным давно объяснили, что Thread.start() устанавливает synchronized-with соотношение (а следовательно, и HB) между Thread.start() и первой операцией в созданном потоке. А следовательно, в примере автора, где он руками запускает поток, использование final не является обязательным, ибо там нет проблем с небезопасной публикацией.
...
Рейтинг: 0 / 0
Поток или метод
    #38411798
cdtyjv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buldozer01Я лишь говорил про связь syncrhonized И hb не вдаваясь в то что конкретно написано в setText.Ну спасибо, что вы это мне сказали. Вопрос только - зачем? Что вам побудило взять некорректный код, и рассказывать мне про HB там, где его нет?
...
Рейтинг: 0 / 0
Поток или метод
    #38411799
Фотография buldozer01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cdtyjv,

Все тушу свет
...
Рейтинг: 0 / 0
Поток или метод
    #38411803
cdtyjv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buldozer01cdtyjv,
Все тушу светДавайте так - если у вас есть, что сказать по делу, то говорите. Если нет - то давайте оставим этот разговор.
...
Рейтинг: 0 / 0
Поток или метод
    #38411811
cdtyjv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А, ну учитывая, что мы играем в игру "придерись к слову другого", то поправлю себя: между выходом из критической секции и последующим входом в нее. Так вот, в нашем случае "последующего входа" нет.
...
Рейтинг: 0 / 0
13 сообщений из 38, страница 2 из 2
Форумы / Java [игнор отключен] [закрыт для гостей] / Поток или метод
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]