Example 5 Let $f(n)$ be a function defined on $\mathbf{N}_{+}$ taking non-negative integer values, and for all $m, n \in \mathbf{N}_{+}$, we have
$$
\begin{array}{l}
f(m+n)-f(m)-f(n)=0 \text{ or } 1, \\
f(2)=0, f(3)>0, f(6000)=2000 . \\
\text{Find } f(5961) .
\end{array}
$$
Solution: From the analysis, we know that $f(1)=0$.
From $f(3)-f(2)-f(1)=0$ or 1, we get $0 \leqslant f(3) \leqslant 1$.
But $f(3)>0$, so $f(3)=1$.
By the problem statement, we have
$$
f(3 n+3)=f(3 n)+f(3)+0 \text { or } 1 \text {, }
$$

which means $f(3 n+3)=f(3 n)+1$ or 2.
Therefore, $f(3(n+1)) \geqslant f(3 n)+1$.
Let $n=1,2, \cdots, k$, we get
$$
\begin{array}{l}
f(3 \times 2) \geqslant f(3 \times 1)+1, \\
f(3 \times 3) \geqslant f(3 \times 2)+1, \\
\cdots . .
\end{array}
$$
$$
f(3 \times k) \geqslant f(3(k-1))+1 \text {. }
$$

Adding all the above inequalities, we get
$$
f(3 k) \geqslant f(3)+(k-1)=k \text {. }
$$

Next, we prove that when $k \leqslant 2000$, $f(3 k)=k$.
Conversely, if $f(3 k) \geqslant k+1$, then
$$
\begin{array}{l}
f(6000) \geqslant f(6000-3 k)+f(3 k) \\
\geqslant 2000-k+k+1>2000 .
\end{array}
$$

This is a contradiction.
Thus, $f(3 k)=k$. Therefore,
$$
f(5961)=f(3 \times 1987)=1987 .
$$