projects:lock_free_testing:start
Differences
This shows you the differences between two versions of the page.
Next revision | Previous revisionNext revisionBoth sides next revision | ||
students:lock_free_testing:start [2020/02/16 16:39] – created kel | students:lock_free_testing:start [2020/03/03 22:19] – ashahov | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== Проверка линеаризуемости lock-free алгоритмов ====== | ====== Проверка линеаризуемости lock-free алгоритмов ====== | ||
- | > Вырастает из темы: // | + | > Вырастает из темы: // |
+ | |||
+ | ---- | ||
+ | |||
+ | ===== Варианты модификации сущеcтвующего байт-кода ===== | ||
+ | - Подмена ClassLoader`a | ||
+ | - Создать свой кастомный: | ||
+ | * Create a custom system(java -Djava.system.class.loader=com.example.MyCustomClassLoader) | ||
+ | - Использовать библиотеки | ||
+ | * https:// | ||
+ | * https:// | ||
+ | * Плюсы: | ||
+ | * Это довольно просто | ||
+ | * Минусы: | ||
+ | * Не понятно, | ||
+ | * Только статическая инициализация | ||
+ | * Распостраняется на все использования данного класса в программе | ||
+ | |||
+ | - Java instrument | ||
+ | * Java Agent - позволяет менять байт-код | ||
+ | * Javassist - позволяет генерировать байт-код | ||
+ | * Attach API(https:// | ||
+ | * Плюсы: | ||
+ | * Динамическая замена байт-кода(возможно даже в конкретном потоке) | ||
+ | * Классический способ для подмены реализацции класса(см. jRebel) | ||
+ | * Минусы: | ||
+ | * Много лишних действий для получения результата | ||
+ | * Ссылки: | ||
+ | * https:// | ||
+ | * https:// | ||
+ | |||
projects/lock_free_testing/start.txt · Last modified: 2020/04/14 10:19 by kel