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

Next revision
Previous revision
Next revisionBoth sides next revision
courses:high_performance_computing:lock_free [2017/04/17 23:57] – created 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);
 +
  
     /**     /**
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>
 +
 +//Дополнительные условности://
 +  - Имя класса реализации - //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