Небольшой проект для изучения Java-потоков
Я программировал в java некоторое время (5 лет), и я думаю, что у меня есть хорошее понимание большинства аспектов языка. Тем не менее, я думаю, что я не работал с потоками столько, сколько хотел.
Что было бы хорошим небольшим проектом, чтобы глубоко изучить потоки Java?
Любые рекомендации?
Спасибо
Ответы
Ответ 1
Приложение клиентского сервера:
сервер принимает соединения в сокете и создает поток связи для каждого клиента.
Это может быть игра или диспетчер задач или что угодно.
Изменить: я разработал такой клиент eMule, как это во время моей стажировки, это легко сделать, и вы можете изучить все аспекты программирования потоков.
Ответ 2
Я написал java-версию PacMan. PacMan был на его собственной нити, как и каждый Призрак. Каждый призрак имел свой собственный алгоритм поиска PacMan.
Ответ 3
Отличный способ начать - это реализовать проблему
Ответ 4
Я изучил темы, написав моделирование лифта. Каждый поток представляет собой объект, представляющий лифт в здании. Отдельная структура содержит "какие кнопки были нажаты на этажах?"
Это может быть не практическое применение - это не веб-браузер, но это час или два, и, когда вы закончите, вы, несомненно, будете намного лучше разбираться в потоках и синхронизации. Если вы хотите потратить гораздо больше времени, обманывая это, я все равно могу попробовать что-то очень простое, чтобы ваши ноги были мокрыми.
Ответ 5
Напишите веб-искатель!
Ответ 6
Попробуйте разработать систему мгновенных сообщений, в которой несколько пользователей подключаются к одному серверу. Выдержка ниже взята из Дителя и Дителя - Java. Как программировать 6-е издание.
Чаты стали обычным явлением на Интернет. Они обеспечивают центральную местоположение, где пользователи могут общаться друг с другом через короткий текст Сообщения. Каждый участник может видеть все сообщения, которые публикуют другие пользователи, и каждый пользователь может отправлять сообщения.
С помощью этого упражнения вы можете испытать 5 лет опыта, так как этот небольшой проект требует не только многопоточности, но и сетевого интерфейса и графического интерфейса. Кроме того, вам нужно использовать метод многоадресной передачи.
Кроме того, проекты с открытым исходным кодом, использующие многопоточность, - еще одно хорошее место, чтобы получить вдохновение и увидеть примеры реальной жизни. Оттуда вы можете принять участие или начать свой собственный проект с открытым исходным кодом.
Все самое лучшее!
Ответ 7
В качестве первого шага рассмотрим возможность использования Обеденные проблемы Phisolophers. Это познакомит вас с различными способами запуска потоков, определения секционированных заданий и обмена данными между потоками.
Существует много "правильных" решений и более опасных попыток. Начать сначала пакеты java.util.concurrent
. Напишите это неправильно и изучите, что нужно, чтобы сделать его правильным.
Ответ 8
Напишите программное обеспечение чата P2P с TCP. Вам также нужно знать о Java Networking и Streams, но это не слишком сложно. И изучение пакета java.net стоит усилий!