Skip to main content

Compare threading features with other libraries

FunctionalityxtdstdBoostQtwxWidgetsPocoACETBBComments / Roadmap
Mutex re-entering✅✅ (recursive_mutex)✅✅ (QRecursiveMutex)✅✅ (FastMutex)✅✅Default Recursive
Mutex non-re-entrant✅✅✅✅ (QMutex)✅✅✅✅
Named Mutex / inter-process✅❌❌✅ (QSystemSemaphore/QSharedMemory)✅✅✅❌Unique to xtd for simple API
Semaphore✅✅ (counting_semaphore)✅✅ (QSystemSemaphore)✅✅✅❌
Named Semaphore / inter-process✅❌❌✅ (QSystemSemaphore)❌✅✅❌Very easy to use
EventWaitHandle / Manual / AutoResetEvent✅❌❌✅ (QWaitCondition + QMutex)❌✅ (Event)✅❌Inter-process support if named
Monitor-style / lock_guard✅❌❌❌❌❌❌❌lock on monitor, lock_guard on mutex
SpinLock✅❌❌❌❌❌✅✅
Barrier / CountdownEvent✅❌✅❌❌❌✅✅
Thread / jthread / thread_start✅✅✅✅ (QThread)✅✅✅✅jthread = Automatic joint
ThreadPool✅❌✅ (Boost::asio/threadpool)✅ (QThreadPool)❌✅✅✅Timer can run via thread pool
Thread exceptions / Abort / Interrupt✅❌❌❌❌❌✅❌Unique to xtd + ACE
Thread local storage✅✅ (thread_local)✅✅ (QThreadStorage)✅✅✅✅
Interlocked / atomic operations✅✅ (std::atomic)✅✅ (QAtomic)✅✅✅✅
Timer simple✅ (xtd::timers::timer)❌✅✅ (QTimer)✅✅✅✅Regular events, multi-thread safe
Timer on thread pool✅ (xtd::threading::timer)❌✅✅❌✅✅✅Automatic callback on thread pool
Timer UI single-thread✅ (xtd::forms::timer)❌❌✅ (QTimer)✅❌❌❌Execution on UI thread for GUI
Futures / Promises❌✅ (std::future)✅✅ (QFuture)❌✅✅✅Can stay in std, not priority for xtd
Tasks / async abstractions⚡ (To come)✅ (std::async)✅✅❌✅✅✅Will integrate with thread_pool and delegate::begin/end_invoke
Condition complex variables✅✅✅✅ (QWaitCondition)✅✅✅✅
Deadlock detection / debugging primitives❌❌❌❌❌❌✅❌automatic detection; but debugging support via thread names, thread_state, and debugger integration (VS, Xcode, gdb)
Priority inheritance mutex❌❌❌❌❌❌✅❌Specialized real-time / embedded use
Thread affinity / CPU pinning✅❌❌❌❌✅✅❌Useful for performance optimization
Cancelable tasks / futures⚡ (To come)❌✅✅❌✅✅✅Xtd can integrate it via task abstraction

Legend​

  • ✅ = Implemented
  • ❌ = Not implemented
  • ⚡ = Planned or in progress

See also

​