Название: SpinLock vs QMutex Отправлено: kramer3d от Март 24, 2010, 11:39 Гуру многопоточного программирования, пожалуйста, подскажите, даст ли использование спинлока, использующего QAtomicInt, какое-либо преимущество над QMutex, при условии что QAtomicInt поддерживается архитектурой?
Защищаемый ресурс - это очередь заданий, по сути, закольцованный FIFO буфер, содержащий указатели, так что операции, выполняющиеся пока спинлок занят - это полдесятка инструкций, копирующих указатель и инкрементирующих значение tail/head. Название: Re: SpinLock vs QMutex Отправлено: Igors от Март 24, 2010, 12:13 При наличии острой/интенсивной конкуренции за ресурс (для операций как Ваши) мутексы могут убить скорость так что будет даже медленнее чем на 1 процессоре. С др. стороны если операции достаточно трудоемки - QAtomic просто съест процессорное время.
Примечание: вместо QAtomicInt лучше найти ОС ф-ции, напр на моей платформе OSSpinLockLock (OSSpinLockUnlock) |