projects:libcds:bounded_pool
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| projects:libcds:bounded_pool [2015/12/10 15:33] – khizmax | projects:libcds:bounded_pool [2015/12/17 23:11] (current) – khizmax | ||
|---|---|---|---|
| Line 20: | Line 20: | ||
| В настоящее время (libcds 2.1.0) в качестве пула в библиотеке используется [[http:// | В настоящее время (libcds 2.1.0) в качестве пула в библиотеке используется [[http:// | ||
| bounded очереди Дмитрия Вьюкова. | bounded очереди Дмитрия Вьюкова. | ||
| - | Он быстр, но имеет один существенный недостаток — иногда | + | Он быстр, но имеет один существенный недостаток — он не является линеаризуемым: |
| при почти полной очереди '' | при почти полной очереди '' | ||
| То есть эта очередь не может стабильно работать в режиме «пул полон». | То есть эта очередь не может стабильно работать в режиме «пул полон». | ||
| + | |||
| + | **UPD**: очередь Вьюкова сделана линеаризуемой. По крайней мере, нижеследующий тест на новой реализации успешен. | ||
| **Требуется**: | **Требуется**: | ||
| - | < | + | < |
| template < | template < | ||
| class Pool | class Pool | ||
| Line 41: | Line 43: | ||
| }; | }; | ||
| </ | </ | ||
| + | Методы '' | ||
| **Критерий корректности**: | **Критерий корректности**: | ||
| - | < | + | < |
| Pool< | Pool< | ||
| std:: | std:: | ||
| std:: | std:: | ||
| - | void thread() | + | void thread_func() |
| { | { | ||
| for ( int i = 1; i <= 1000000; ++i ) { | for ( int i = 1; i <= 1000000; ++i ) { | ||
projects/libcds/bounded_pool.1449750808.txt.gz · Last modified: 2015/12/10 15:33 by khizmax