|
|
|
Какие преимущества у портов завершения(IOCP) перед сигналами, событиями или уведомлениями?
|
|||
|---|---|---|---|
|
#18+
http://ru.wikipedia.org/wiki/Многопоточность#.D0.92.D0.B7.D0.B0.D0.B8.D0.BC.D0.BE.D0.B4.D0.B5.D0.B9.D1.81.D1.82.D0.B2.D0.B8.D0.B5_.D0.BF.D0.BE.D1.82.D0.BE.D0.BA.D0.BE.D0.B2 Порт завершения ввода-вывода (IO completion port, IOCP). Реализованный в ядре ОС и доступный через системные вызовы объект «очередь» с операциями «поместить структуру в хвост очереди» и «взять следующую структуру с головы очереди» — последний вызов приостанавливает исполнение потока в случае, если очередь пуста, и до тех пор, пока другой поток не осуществит вызов «поместить». Самой важной особенностью IOCP является то, что структуры в него могут помещаться не только явным системным вызовом из режима пользователя, но и неявно внутри ядра ОС как результат завершения асинхронной операции ввода-вывода на одном из дескрипторов файлов . Для достижения такого эффекта необходимо использовать системный вызов «связать дескриптор файла с IOCP». Есть ли какие-то примеры преимущества такого подхода перед сигналами(signals), событиями(events) или уведомлениями переменных состояния(condition variable notify)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2013, 13:35 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=38301520&tid=1341770]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
153ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
28ms |
get tp. blocked users: |
1ms |
| others: | 255ms |
| total: | 475ms |

| 0 / 0 |
