- Код должен быть написан на языке C и собираться под Linux.
- Исходники должны быть выложены на github.
-
Сформировать в памяти двусвязный список определенного размера, содержащий случайные значения, которые следует получить из генератора случайных чисел.
-
Запустить два потока (threads).
-
Потоку №1: начиная с головы списка подсчитывать количество нулевых битов в значениях элементов и количество пройденных элементов, освобождать учтённый элемент сразу после учёта.
-
Потоку №2: начиная с хвоста списка подсчитывать количество единичных битов в значениях элементов и количество пройденных элементов, освобождать учтённый элемент сразу после учёта.
-
По окончании элементов списка вывести результаты подсчёта.
-
Обеспечить однократную обработку каждого элемента списка (каждый должен быть учтён, но только один раз, одним из потоков).
-
Желательно, чтобы в потоках работали не две разные функции, а одна, принимающая особенности работы через аргументы.