Любые предложения для программы или небольшого проекта, чтобы узнать о параллелизме в Java? [закрыто]

В Java 8:

String[] strings = Arrays.stream(objects).toArray(String[]::new);

Для преобразования массива других типов:

String[] strings = Arrays.stream(obj).map(Object::toString).
                   toArray(String[]::new);
13
задан Bill the Lizard 19 September 2012 в 01:51
поделиться

8 ответов

Если вы действительно только начинаете, то, вероятно, проблема производителя-потребителя - это хороший способ начать:

http://en.wikipedia.org/wiki/Producer-consumer_problem

Не читайте слишком много, потому что статья в Википедии также содержит решение проблемы: -)

9
ответ дан 1 December 2019 в 18:13
поделиться

попробуйте преобразователь судоку с различными стратегиями:

  • 3 потока: 1 для строк, 1 для столбцов и 1 для субквадрат
  • 9 потоков: 3 для строк (1 поток каждые 3 строки), 3 для столбцов и 3 для подквадрат
  • 27 потоков: 9 для строк (1 поток в каждой 1 строке) и т. д.
10
ответ дан 1 December 2019 в 18:13
поделиться

Если вы немного опытный программист, вам может быть интересно создать небольшой сервер для назначения цен на акции, который использует протокол исправления . Это должно было бы быть в состоянии справиться с несколькими клиентами (а затем вы научитесь Swing или некоторым веб-технологиям), что требует параллелизма.

Если вы новичок, я предлагаю что-то более простое, например, поток производителя с парой потребительских потоков. и вы получите дополнительные баллы, если сможете графически показать процесс.

2
ответ дан 1 December 2019 в 18:13
поделиться

Я настоятельно рекомендую книгу Java Concurrency In Practice в качестве ресурса, пока вы работаете над любым выбранным вами проектом.

1
ответ дан 1 December 2019 в 18:13
поделиться

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

Потоки в Java

1
ответ дан 1 December 2019 в 18:13
поделиться

A common learning project for concurrency and networking is to write a chat program. It is similar to the FIX server suggestion but you just pass text around.

2
ответ дан 1 December 2019 в 18:13
поделиться

Когда я читаю параллельные системы программируя в университете, мы создали систему видеонаблюдения - один главный ПК, который загружал видеоданные с одного или нескольких подчиненных компьютеров с веб-камер. Я помню этот проект, так как он действительно заставил вас заняться как эффективным сетевым программированием, так и проблемами в реальном времени и JNI:)

2
ответ дан 1 December 2019 в 18:13
поделиться

Написать алгоритм умножения матриц. Распараллелить это. Оптимизируй это. Посмотрите, как оно масштабируется, особенно если у вас многоядерный компьютер. Это был бы веселый проект.

12
ответ дан 1 December 2019 в 18:13
поделиться