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 revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
courses:high_performance_computing:lock_free [2018/01/05 18:49] kelcourses:high_performance_computing:lock_free [2019/04/28 13:18] kel
Line 17: Line 17:
      */      */
     boolean add(T value);     boolean add(T value);
 +
  
     /**     /**
Line 27: Line 28:
      */      */
     boolean remove(T value);     boolean remove(T value);
 +
  
     /**     /**
      * Проверка наличия ключа в множестве      * Проверка наличия ключа в множестве
      *      *
-     * Алгоритм должен быть как минимум lock-free+     * Алгоритм должен быть как минимум wait-free
      *      *
      * @param value значение ключа      * @param value значение ключа
Line 37: Line 39:
      */      */
     boolean contains(T value);     boolean contains(T value);
 +
  
     /**     /**
      * Проверка множества на пустоту      * Проверка множества на пустоту
      *      *
-     * Алгоритм должен быть wait-free (достаточно lock-free, wait-free для сильно уверенных в себе)+     * Алгоритм должен быть как минимум wait-free
      *      *
      * @return true если множество пусто, иначе - false      * @return true если множество пусто, иначе - false
      */      */
     boolean isEmpty();     boolean isEmpty();
 +    
 +    /**
 +     * Возвращает lock-free итератор для множества
 +     *
 +     * @return новый экземпляр итератор для множества
 +     */
 +    java.util.Iterator<T> iterator();
 } }
 </code> </code>
  
-Дополнительные условности: +//Дополнительные условности:// 
-  - Имя класса реализации - //LockFreeSetImpl//+  - Имя класса реализации - //LockFreeSet//
   - Класс должен иметь конструктор без параметров   - Класс должен иметь конструктор без параметров
 +  - Pull Request должен содержать в части тестирования проходящие:
 +    * Нагрузочные тесты на основе [[http://openjdk.java.net/projects/code-tools/jcstress/|jcstress]]
 +    * Тесты корректности на основе [[https://github.com/Devexperts/lin-check|lincheck]]
 +  - В реализации не предполагается увидеть стандартные контейнеры из java.util.concurrent
courses/high_performance_computing/lock_free.txt · Last modified: 2023/12/17 14:11 by odoronin