![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
Samotnik |
|
||||
![]() Super star ! ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 7192 Регистрация: 4.11.2006 Где: Минск City Репутация: 8 Всего: 191 |
Добрый день!
Есть код, сканер Директорий Значит, после запуска программы, ползователю предлагается 2 выбора: просканировать и выйти. Стоит условие:
Вот тут то и проблемка, я не могу сообразить, как многопоточность сделать?!? Вот фрагмент кода:
Помогите плз приклееть многопоточность на Scan и exit у меня ничего не получилось. ![]() ![]() ![]() ![]() ![]() Пэ.Эс. Желательно на примере моего кода, что бы легче разбираться было, т.к. во вторник уже сдавать это задание необходимо!!! |
||||
|
|||||
nornad |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1079 Регистрация: 16.2.2007 Где: в Караганде Репутация: 16 Всего: 31 |
Э... а ты вообще про многопоточность только слышал или хотя бы раз сам делал? Что-то мне кажется, что только слышал.
В общем, на форуме об этом уже куча всего есть и потому повторять лишний раз не стану (используй поле "Поиск", чай не первый день на форуме). Скажу только, что тебе надо создать свой поток (Thread), в котором определить метод run. -------------------- Три достоинства программиста: Леность, Нетерпение и Гордость Ларри Уолл |
|||
|
||||
Samotnik |
|
||||
![]() Super star ! ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 7192 Регистрация: 4.11.2006 Где: Минск City Репутация: 8 Всего: 191 |
Ничего полезного ![]()
Делал сам, но только запуск элементарных приложени(распечатка цифр каждые 3 секунды,.. ) А вот сейчас по серьезнее нуна сделать, пробую пробую, но ..... ![]()
Так а что мне писать в методе run() ? Ведь он должен быть реализован в классе, котором создается поток. А весь код у меня написан в main() а в нем run() не напишешь. Это сообщение отредактировал(а) Samotnik - 7.10.2007, 16:12 |
||||
|
|||||
Samotnik |
|
|||
![]() Super star ! ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 7192 Регистрация: 4.11.2006 Где: Минск City Репутация: 8 Всего: 191 |
![]() Ребята, помогите плз сделать потоки для каждого сканера !!! С меня 2 плюса, кто поможет!! На самом деле, срочно нужно, во вторник уже сдавать, а мне еще junit повставлять нуна!!! ![]() ![]() ![]() |
|||
|
||||
Vasay |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2097 Регистрация: 8.3.2006 Репутация: 11 Всего: 73 |
Многопоточность в java - это просто.
Давай так:
Вынеси код, отвечающий за сканер в отдельный класс (пока без многопоточности) и запости код сюда.... -------------------- Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны. |
|||
|
||||
Samotnik |
|
|||
![]() Super star ! ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 7192 Регистрация: 4.11.2006 Где: Минск City Репутация: 8 Всего: 191 |
||||
|
||||
Vasay |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2097 Регистрация: 8.3.2006 Репутация: 11 Всего: 73 |
Так вынеси.... Зачем тебе код в main? -------------------- Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны. |
|||
|
||||
Samotnik |
|
|||
![]() Super star ! ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 7192 Регистрация: 4.11.2006 Где: Минск City Репутация: 8 Всего: 191 |
![]() Готово!
Это сообщение отредактировал(а) Samotnik - 7.10.2007, 18:21 |
|||
|
||||
nornad |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1079 Регистрация: 16.2.2007 Где: в Караганде Репутация: 16 Всего: 31 |
Ну, ежели только за ради славы... ![]() В нём и надо запускать сканер. Я бы рекомендовал выделить сканер в отдельный класс, который будет создаваться и запускаться в потоке. Точнее, даже не так - пусть твой сканер и будет потоком. ![]() В общем, делаешь класс сканера, наследуешь его от Thread и определяешь метод run. Если вообще создавал поток, то проблем быть не должно. На форуме, повторюсь, есть масса примеров работы с потоками. Видимо, ты плохо искал. Сомневаюсь. У тебя же ещё должен быть реализован опрос консоли, чтобы пользователь мог вводить команды. Его, кстати, можно сделать в бесконечном цикле в основном потоке. Или выделить в отдельный поток, но это, имхо, хуже - зачем плодить лишние потоки? Не похоже. А где наследование от трэда? Давай не будем делать откровенно глупые вещи. Тебе советовали выделить код сканера в отдельный класс. Это ты выделил. Теперь чтобы сделать из этого поток, осталось лишь унаследовать и определить ран. "Чего же боле?". -------------------- Три достоинства программиста: Леность, Нетерпение и Гордость Ларри Уолл |
|||
|
||||
Vasay |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2097 Регистрация: 8.3.2006 Репутация: 11 Всего: 73 |
Несовсем так. Я хотел чтобы ты вынес в отдельный класс все что отвечает за сам сканер,
т.е. то что между if (p.equalsIgnoreCase("Scan")){ ************************ } т.е. то что будет работать в отдельном потоке. -------------------- Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны. |
|||
|
||||
Samotnik |
|
|||
![]() Super star ! ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 7192 Регистрация: 4.11.2006 Где: Минск City Репутация: 8 Всего: 191 |
Vasay, А так пойдет ? :
nornad, пожалуйста скажи номер строки, где следует писать ран ? Это сообщение отредактировал(а) Samotnik - 7.10.2007, 19:16 |
|||
|
||||
Vasay |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2097 Регистрация: 8.3.2006 Репутация: 11 Всего: 73 |
Не не пойдет.... Добавил Почти пойдет...
Итак, давай по порядку, как это должно работать (пока без потока): Класс main: Что логически там должно произойти? Запуск программы ->Вывод сообщения (введите "scan" для сканирования, "Exit" для выхода) -> читаем ввод пользователя -> Если "Exit" -> вышли Если "Scan"-> (Пока) создали объект класса NewThread -> Запустили MainFunction(); ->MainFunction() отработала -> (это на будущее) попросили пользователя ввести "Stop", если верно, то вышли, нет, просим еще раз Сделай пока это, тебе немного поменять (пока без потоков) Это сообщение отредактировал(а) Vasay - 7.10.2007, 20:33 -------------------- Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны. |
|||
|
||||
Samotnik |
|
||||
![]() Super star ! ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 7192 Регистрация: 4.11.2006 Где: Минск City Репутация: 8 Всего: 191 |
Чет я вот с этим не сильно понял
Это должно получицц что-то вроде этого ?
Я чего - то не понимаю, зачем вводить СТОП ?? |
||||
|
|||||
nornad |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1079 Регистрация: 16.2.2007 Где: в Караганде Репутация: 16 Всего: 31 |
В предыдущем варианте строки 20-86 уходят в класс сканера. Можно всё запихнуть в ран, а можно разбить на методы по логике работы. Добавлено через 3 минуты и 59 секунд
Я тоже не понял, зачем это ![]() Добавлено через 4 минуты и 43 секунды Короче, в мэйне тебе надо сделать такой цикл: -------------------- Три достоинства программиста: Леность, Нетерпение и Гордость Ларри Уолл |
|||
|
||||
Vasay |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2097 Регистрация: 8.3.2006 Репутация: 11 Всего: 73 |
1. char - это один символ, он равен слову быть не может.
Впринципе, он нам не нужен, но так как для начала, я хочу, чтоб ты запустил только один поток, то стоп нам нужен, для того, чтоб корректно его остановить, а не ждать пока он завершит работу Перечитал задание, подумал, что много мы в отдельную функцию вынесли, в потоке не должно быть никакого общения с юзером... -------------------- Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |