courses:high_performance_computing:coroutines_map
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| courses:high_performance_computing:coroutines_map [2020/06/02 22:55] – odoronin | courses:high_performance_computing:coroutines_map [2020/06/08 00:58] (current) – odoronin | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Coroutines Map ====== | ====== Coroutines Map ====== | ||
| - | Необходимо реализовать следующий интерфейс lock-free map в стиле coroutines: | + | Необходимо реализовать следующий интерфейс lock-free map в стиле coroutines, интерфейс по поведению должен сответстовать [[https:// |
| <code java> | <code java> | ||
| public interface CoroutinesMap< | public interface CoroutinesMap< | ||
| /** | /** | ||
| - | * Добавить (key,value) к ассоциативному контейнеру | + | * Добавить (key,value) к ассоциативному контейнеру. Если key уже существует, |
| * | * | ||
| - | * Алгоритм должен быть как минимум lock-free | + | * Алгоритм должен быть как минимум lock-free. |
| * | * | ||
| * @param key ключ | * @param key ключ | ||
| Line 19: | Line 19: | ||
| * Проверка наличия ключа в множестве | * Проверка наличия ключа в множестве | ||
| * | * | ||
| - | * Алгоритм должен быть как минимум wait-free | + | * Алгоритм должен быть как минимум wait-free |
| * | * | ||
| * @param key значение ключа | * @param key значение ключа | ||
| Line 54: | Line 54: | ||
| </ | </ | ||
| - | В работе можно использовать только JDK 11 и язык программирования Kotlin. Имя класса реализации CoroutinesMapImpl. В работе нужно доработать lock-free-set из прошлой работы до map и использовать как вложенное поле в CoroutinesMapImpl. Если ваш lock-free-set был написан на java, то можно его импортировать как java файл и доработать до map тоже на языке java, но реализацию CoroutinesMapImpl нужно уже писать на Kotlin. | + | В работе можно использовать только JDK 11 и язык программирования Kotlin. Имя класса реализации CoroutinesMapImpl. В работе нужно доработать lock-free-set из прошлой работы до map и использовать как вложенное поле в CoroutinesMapImpl. Если ваш lock-free-set был написан на java, то можно его импортировать как java файл и доработать до map тоже на языке java, но реализацию CoroutinesMapImpl нужно уже писать на Kotlin. |
| + | |||
| + | * В работе должны быть тесты только на работу с корутинами | ||
| + | * Запрещено использовать asCoroutineDispatcher | ||
| + | * Задачи нужно отправлять через submit в Exectuors.fixedThreadPool, | ||
| При использовании async действия должны выполняться асинхронно | При использовании async действия должны выполняться асинхронно | ||
courses/high_performance_computing/coroutines_map.1591127722.txt.gz · Last modified: 2020/06/02 22:55 by odoronin