Primary users (PUs) have higher priority and are able to preempt the channels used by secondary users (SUs) in cognitive radio networks (CRNs). The traditional complete preemption mechanism does not restrict the preemption behavior of PUs, and it isn’t easy to guarantee SUs’ transmission performance when PU packets arrive frequently. To ensure SUs’ most essential continuous transmission, we propose a preemption mechanism with a dynamic preemption limit in a finite-source CRN system. The preemption limit is adjusted dynamically by the central controller in accordance with transmitted SU packets’ quantity to restrict PUs’ preemption behavior. We develop a 2-dimensional Markov-chain based on this to construct a discrete-time preemptive queueing model. With the solved system’s steady-state probability distribution, we obtain some performance index expressions. Moreover, we analyze the system’s performance in various network conditions and compare our proposed preemption mechanism to the traditional complete preemption mechanism to demonstrate its superiority by employing numerical experiments. Numerical results show that the proposed preemption mechanism with a dynamic preemption limit can improve SUs’ transmission performance and adapt to the more complex network environments. Finally, we create a utility function to calculate the ideal amount of SUs that will provide the optimal comprehensive performance.