Open Source & Linux Lab

It's better when it's simple

User Tools

Site Tools


courses:high_performance_computing:lock_free

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
courses:high_performance_computing:lock_free [2019/04/28 13:18]
kel
courses:high_performance_computing:lock_free [2021/11/15 02:19] (current)
kel
Line 7: Line 7:
  * @param <T> Тип ключей  * @param <T> Тип ключей
  */  */
-public interface ​LockFreeSet<T extends Comparable<​T>>​ {+public interface ​Set<T extends Comparable<​T>>​ {
     /**     /**
      * Добавить ключ к множеству      * Добавить ключ к множеству
Line 33: Line 33:
      * Проверка наличия ключа в множестве      * Проверка наличия ключа в множестве
      *      *
-     * Алгоритм должен быть как минимум wait-free+     * Алгоритм должен быть как минимум wait-free ​для типов конечной размерноости и lock-free для остальных
      *      *
      * @param value значение ключа      * @param value значение ключа
Line 44: Line 44:
      * Проверка множества на пустоту      * Проверка множества на пустоту
      *      *
-     * Алгоритм должен быть как минимум ​wait-free+     * Алгоритм должен быть как минимум ​lock-free
      *      *
      * @return true если множество пусто, иначе - false      * @return true если множество пусто, иначе - false
Line 53: Line 53:
      * Возвращает lock-free итератор для множества      * Возвращает lock-free итератор для множества
      *      *
-     ​* ​@return новый экземпляр итератор для множества+     ​* ​Итератор должен быть линеаризуем в терминах ​представления когда-либо существовавшего вместе набора элементов 
 +     * 
 +     * @return ​итератор для множества
      */      */
     java.util.Iterator<​T>​ iterator();     java.util.Iterator<​T>​ iterator();
Line 60: Line 62:
  
 //​Дополнительные условности://​ //​Дополнительные условности://​
-  - Имя класса реализации - //LockFreeSet//+  - Имя класса реализации - //SetImpl//
   - Класс должен иметь конструктор без параметров   - Класс должен иметь конструктор без параметров
-  - Pull Request должен содержать в части тестирования проходящие: +  - Pull Request должен содержать в части тестирования проходящие тесты корректности на основе [[https://​github.com/​Kotlin/kotlinx-lincheck|lincheck]]
-    * Нагрузочные тесты на основе [[http://​openjdk.java.net/​projects/​code-tools/​jcstress/​|jcstress]] +
-    * Тесты корректности на основе [[https://​github.com/​Devexperts/lin-check|lincheck]]+
   - В реализации не предполагается увидеть стандартные контейнеры из java.util.concurrent   - В реализации не предполагается увидеть стандартные контейнеры из java.util.concurrent
 +  - Гарантировать исполнение на JDK 11
courses/high_performance_computing/lock_free.1556446726.txt.gz · Last modified: 2019/04/28 13:18 by kel