In your context, "CPU blocking" just means that the single core that node.js is running Javascript on is busy. And, while a given core is busy, it is running full time. You can't have a 50% utilized core that is running a large JSON.parse()
operation. It's either running an operation or it's not. A 50% utilization just means that it's only running half the time, but when it's running, it is fully "peaked".
A typical CPU these days has multiple cores. One large JSON.parse()
operation would only be running on one single core. So, while that core would be running max during the duration of the JSON.parse()
operation, the other cores would not and thus the whole CPU would not necessarily be maxed as the other cores are available to do other work.
Since node.js is single threaded for Javascript execution, the main way to use those other cores is to either spawn a child process to run certain operations or to use node.js clustering so you have multiple node.js processes all serving requests that arrive for your server.