Skip to content

ValeriaIM/CustomThreadPool

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CustomThreadPool

image

#task 4 Ваша задача написать свой собственный ThreadPool, воркеры которого будут работать по алгоритму из лекции. Для того, чтобы сигнализировать потокам о появлении новых задач вам понадобится Monitor.Pulse и Monitor.Wait.

Для начала вы можете попробовать реализовать простой тредпул, с одной очередью и блокировкой на ней — это будет оценено в один балл. Вам всё ещё придётся использовать Monitor.Pulse и Monitor.Wait, но не придётся реализовывать логику "воровства" из очередей воркеров.

На два балла вам придётся дополнительно реализовать воровство и вам понадобится WorkStealingQueue

Естественно, пользоваться встроенным в .NET ThreadPool-ом нельзя, однако в коде который я вам дам будет пример реализации интерфейса, написанный поверх .NET ThreadPool-а. Так же в архиве для выполнения домашнего задания будет набор бенчмарков, которые помогут вам оценить эффективность вашего решения в сравнении с базовым.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages