Modern CPUs follow multi-core designs with multiple threads running in parallel. The data flow of query processing algorithms needs to be adapted to exploit such designs. The authors identify memory accesses and thread synchronization as the main bottlenecks in a multi-core execution environment. They present a uniform framework to mitigate the impact of these bottlenecks in multithreaded versions of the most frequently used query processing algorithms, namely sorting, partitioning, join evaluation, and aggregation. They analytically model the expected performance and scalability of the proposed algorithms.