Multi-core architectures are widely used to execute large scale scientific applications with a shared memory parallelism. The locking policy of critical sections is to protect the data state if multiple threads are simultaneously accessing. Factors such as the portion of the critical section part to the parallel code, and the number of concurrency threads may affect the multi-threaded parallel processing and can then become a bottleneck constraining the overall performance. This paper discusses the impact of critical sections on the overall performance, both in the task parallel pattern and in the data parallel pattern. According to whether forming a congestion queue for a critical section, we propose two different performance models. Furthermore, we introduce an adaptive rule to swap two different models. In addition, according to the adaptive performance model of the critical section contention, an optimal parallel execution paradigm on multi-core architectures is discussed. The result reveals that the critical condition forming a congestion queue for a critical section is the optimal value of the overall parallel performance.