2010-05-12 2 views
3

Я разработчик Java EE, и я хочу получить навыки разработки параллелизма.
Не могли бы вы предоставить мне некоторые задания, идеи и т. Д. - только для обучения и обучения параллельному программированию?java concurrency assignments

ответ

3

Для начала просто начать кодирование, чтобы получить представление о некоторых из проблем, которые могут возникнуть.

Для начала попробуйте написать следующее:

  1. Как бы реализовать простую очередь блокировки?
  2. Как вы останавливаете поток?
  3. Как вы гарантируете, что только одна тема может читать и писать в коллекцию за раз?
  4. Что произойдет, если вы измените коллекцию, в то время как другой поток выполняет итерацию по ней.
  5. и т.д., и т.д.

Просто выходить в интернет и, возможно, сделать поиск интервью вопросы о параллельности.

+0

благодарим вас за ответ! – dev

6

Существует блестящая книга о параллелизме Java под названием «Java Concurrency in Practice». Я думаю, что это лучшая отправная точка для глубокого погружения в расширенный параллелизм.

Java Concurrency in Practice (Amazon)

+2

Эта книга является обязательным для чтения, если вы собираетесь выполнять параллельное программирование на Java. – Jesper

+0

Я знаю, что эта книга классная, но я попросил некоторые практические идеи для обучения параллелизму. Спасибо! – dev

1

я писал о новых параллелизм решений с Spring Framework 3 и Java EE 6 here.

В нем объясняется, как выполнять асинхронные методы декларативно с помощью @Async или аннотации Java EE @Asynchronous.

Эти аннотации - это всего лишь способ абстрагироваться от сложной параллельной логики.

Вы можете настроить Spring для использования класса Executor для выполнения логики параллелизма. Класс Exceutor был представлен на Java 5 и хорошо объяснен в книге Java Concurrency in Practice вместе с другими классами в пакете java.util.concurrent.

В статье также показано, как использовать ту же самую услугу Executor в коде и весной. Это позволяет использовать один и тот же пул потоков как для вашей логики параллельного программирования, так и для вашей параллельной логики, обрабатываемой контейнером приложения.

Кроме того, вы можете многому научиться из документации Java. Прочитайте обо всех классах в параллельном пакете и особенно Executor class. Это, по крайней мере, моя самая популярная документация.