Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.11.2010, 11:37   #1
Хохол
Пользователь
 
Аватар для Хохол
 
Регистрация: 20.11.2009
Сообщений: 37
По умолчанию При чтении из консоли в одном потоке, не передается управление другому потоку

Код:
import javax.swing.*;
import java.util.*;
 
public class Main {
 
    public static void main(String[] args){
        new Thread() {
            @Override
            public void run() {
                JOptionPane.showMessageDialog(null, null);
            }
        }.start();
        Scanner in = new Scanner(System.in);
        while(true) {
            in.next();
        }
    }
}

По всей видимости когда поток с чтением ожидает ввода, управление другому потоку не передается. В результате видим замечательную картину с постепенно проявляющимся мессадждайалогом, перерисовывающимся только после ввода в консоль.
Какого фига? Что делать?
Accepted
Хохол вне форума Ответить с цитированием
Старый 10.11.2010, 12:49   #2
alexinspir
Новичок
Джуниор
 
Аватар для alexinspir
 
Регистрация: 26.08.2008
Сообщений: 1,010
По умолчанию

Согласно вашему коду управление другому потоку передается сразу же после старта программы, а не при чтении из консоли.
ромик0: Cколько получают здешние модераторы?
pu4koff: У модераторов сдельная оплата труда. Выдал предупреждение - плюс к премии. Выдал бан - лучший модератор месяца со всеми вытекающими.
alexinspir вне форума Ответить с цитированием
Старый 10.11.2010, 15:58   #3
Хохол
Пользователь
 
Аватар для Хохол
 
Регистрация: 20.11.2009
Сообщений: 37
По умолчанию

Ну, на некоторое время передается, потом первый поток доходит до строки с чтением, ожидает ввода и не отдает управление.
Accepted
Хохол вне форума Ответить с цитированием
Старый 10.11.2010, 18:22   #4
alexinspir
Новичок
Джуниор
 
Аватар для alexinspir
 
Регистрация: 26.08.2008
Сообщений: 1,010
По умолчанию

Цитата:
Сообщение от Хохол Посмотреть сообщение
Ну, на некоторое время передается, потом первый поток доходит до строки с чтением, ожидает ввода и не отдает управление.
Кому основной поток должен отдать управление? и управление чем?
Настоятельно рекомендую ознакомится с принципами работы нитей(потоков) в Java.
ромик0: Cколько получают здешние модераторы?
pu4koff: У модераторов сдельная оплата труда. Выдал предупреждение - плюс к премии. Выдал бан - лучший модератор месяца со всеми вытекающими.
alexinspir вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Копировать данные при чтении Doctordradd Общие вопросы Delphi 0 02.11.2010 18:43
Ошибка при чтении из файла alex_alpha Общие вопросы C/C++ 5 08.08.2010 20:28
ошибка при чтении файла Alik-Soldier Общие вопросы C/C++ 1 31.05.2009 20:44
Почему управление передается в процедуру? Sergee Общие вопросы Delphi 13 15.01.2009 01:37