Skip to content

Latest commit

 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Thread Pool - High-Performance Task Queue

Библиотека пула потоков для эффективного выполнения параллельных задач на C.

Описание:

Thread Pool реализует шаблон проектирования "Пул потоков" для оптимизации выполнения множества коротких задач без накладных расходов на создание потоков.

Технологии:

Язык: C (C99)
API: POSIX Threads (pthreads)
Примитивы: mutex, condition variables, atomic operations

Возможности:

Ленивое создание потоков (по мере необходимости)
Потокобезопасная очередь задач
Ограничение максимального числа потоков
Повторное использование задач (re-push)
thread_task_join() - ожидание завершения
thread_task_timed_join() - ожидание с таймаутом
thread_task_detach() - автоматическое удаление

Быстрый старт

Сборка:

gcc -Wall -Wextra -Werror -pthread -o test test.c thread_pool.c

Запуск тестов:

./test

API:

Создание пула:

struct thread_pool *pool;
thread_pool_new(max_threads, &pool);

Создание и выполнение задачи:

struct thread_task *task;
thread_task_new(&task, my_function, arg);
thread_pool_push_task(pool, task);
thread_task_join(task, &result);
thread_task_delete(task);

Архитектура:

Worker Threads: Потоки, ожидающие задачи из очереди
Task Queue: Потокобезопасная очередь с мьютексом
Condition Variables: Для сигнализации о новых задачах
Atomic Counters: Для отслеживания состояния

Особенности:

Отсутствие busy-wait (используются condition variables)
Корректная обработка гонок (race conditions)
Отсутствие утечек памяти
Поддержка до 100,000 задач

Тесты включают:

Стресс-тесты (1000+ задач)
Тесты на гонки данных
Тесты таймаутов
Тесты detach

About

Библиотека пула потоков для эффективного выполнения параллельных задач на C

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages