Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
1 / 1 / 1
Регистрация: 17.06.2016
Сообщений: 22

Аномалия с многопоточностью в IntelliJ IDEA

12.10.2016, 23:50. Показов 809. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Разбираюсь с потоками и наткнулся на вещь, которую не в силах объяснить.
Вот код:
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
27
28
29
30
31
32
33
34
35
36
37
38
public class ThreadProblem {
    
    private static final int LIMIT=50;
    
    public static void main(String[] args){
        
        MyThread thread1 = new MyThread("thread1");
        MyThread thread2 = new MyThread("thread2");
        MyThread thread3 = new MyThread("thread3");
        while (thread1.getX()+thread2.getX()+thread3.getX()<LIMIT){ 
            //System.out.print("");
        }
        System.out.println(thread1.getX());
        System.out.println(thread2.getX());
        System.out.println(thread3.getX());
        
    }
    
    public static class MyThread extends Thread {
        private int x;
       
        public MyThread(String name){
            super(name);
            start();
        }
        
        public void run(){
            while (x<LIMIT) x++;
        }
        
        public int getX(){
            return x;
        }
                
    }
    
    
}
Если данный код запускать в Eclipse, то он работает. А если в IntelliJ IDEA, то где-то в трети случаев он зависает.
Причем, если раскомментировать строчку в мейне или объявить переменную x volatile , то у меня код работает в 100% случаев. Этому есть объяснение или может это какой-то внутренний баг?
Заранее спасибо
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.10.2016, 23:50
Ответы с готовыми решениями:

IntelliJ IDEA
IntelliJ IDEA где можно скачать но мне нужно для 32 битного Windows xp?? И сколько оперативки она будет занимать??

intellij idea
Здравствуйте! Помогите, у меня есть код на java, только незнаю как его вставить в intellij idea 9.0, чтобы он работал.

IntelliJ IDEA
Здравствуйте. Столкнулся сегодня с проблемкой в IntelliJ IDEA Community Edition 14.1.1, после выхода из ждущего режима, как бороться с этим?

1
Эксперт Java
 Аватар для turbanoff
4094 / 3828 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 12
13.10.2016, 00:06
Это баг вашей программы.
Так как переменная x не volatile - то не гарантируется, что главный обязан видеть обновления переменной. И JVM, с чистой совестью, может превратить ваш цикл в бесконечный.

Разница при запуске в разных IDE, скорее всего, объясняется либо наличием их обвязки для запуски программы, либо тем, что используются разные версии JDK
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.10.2016, 00:06
Помогаю со студенческими работами здесь

Intellij Idea
Ошибка с @Test. Test package Main; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import...

Maven и IntelliJ Idea
Установил Maven в IntelliJ Idea , но при компиляции стороннего кода случаются такие ошибки. (Сам Maven установился, т.к. в командной...

Не работает IntelliJ IDEA
Запускаю, идет какая-то подгрузка и после ничего не происходит. В чем может быть проблема?

Настройка Intellij IDEA
У меня IDEA вместо 9 и 0 набирает ( и ), а все остальные цифры нормально.Точно так же с {} вместо . Не знаю после чего так начало делать....

JSP и Intellij Idea
Добрый вечер, не могу разобраться с одной &quot;проблемой&quot; уже 4 часа. Не могу запустить даже пустой(дефолтный) jsp-файл. Если запускаю...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru