Вот фрагмент моего кода, он прекрасно компилируется и работает но вот только если убрать System.out.println(""); из цикла то ничего уже не работает, если вставить любую другую команду вместо System.out.println(""); все норм. Никак не могу понять почему.
public class LDgui
{
static boolean flag = false;
static boolean flag2 = false;
private int sec = 0;
JLabel label;
public static void main(String[] args)
{
LDgui ld = new LDgui();
ld.go();
while (true)
{
System.out.println("");//вот это место
if (flag==true)
{
ld.timer();
}
//int i = 0;
}
}
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Вот ссылка
Обьясняю, обьясвив переменную как volatile, «мы говорим процессору, что не нужно ее копировать в кэш, а все операции производить в медленной памяти». Тогда все потоки будут видет изменение переменной flag.
Надо же :)
Попробую поразмыслить над феноменом :)
представленного фрагмента кода не достаточно, чтоб оценить проблему… могу допустить, что какой-то не указанный процесс включает что в свою очередь запускает но, что должно получаться а что нет и какая тут зависимость от даже теоретически… не понятно по крайней мере мне.
Может быть и можно было бы грешить на какой-то вторичный эффект при но что у него общего с ?
Раз вариант поведения не стандартный, может стоит как-то настроить обработку исключений? Или для чистоты эксперимента попробовать запустить свой проект на другом ПК?