CPU is a network resource in the EOS mainnet network. EOS has a system which allocates CPU to network participants who stake EOS tokens for CPU resource. This system was implemented to prevent spam transactions and denial of service attack. It also prevents overloading of the network. CPU resource is allocated at a rate that is in proportion to how much EOS a user has staked.
CPU is calculated in microseconds and it represents computing time. In simple words, it indicates how much computing time is allocated to a user. Having more computing time would allow a user to make more transactions.
When a user performs an action in the EOS network, he losses a portion of his allocated CPU time. After using up all his CPU time, he will have to wait for 24 hours till CPU is recharged. The EOS code that sets this value is in the config file's 50th line:
> static const uint32_t account_cpu_usage_average_window_ms = 24*60*60*1000l;
A user can check how much CPU time he has by visiting his EOS profile in a block explorer. Below, I have given my EOS profile links to two major block explorers as examples.
At the time of writing, my CPU time showed as "CPU used - 48,062 µs / 111,819 µs". It means I have 111,819 microseconds of CPU time and I used 48,062 microseconds. That means, I have 111819 - 48062 = 63757 microseconds of CPU time left that I can use in the next 24 hours.
These stats are calculated at the time of my last transaction or other action I performed in the EOS network. So, if I don't do anything in the next few hours, the same stat would be shown to me.
This CPU time allocation constantly changes. It is calculated based on how busy the network is. If the network is very busy and it is running at 500+ transactions per second, users with a low amount of EOS staked will have low CPU time. If the network is not busy and only 5 transactions are happening per second, then users will have 100 times higher CPU time than when it is running at 500+ tps.
I have tried to use simple language in my answer so that it is understandable for both smart and average users. If you still have doubts about something related to EOS CPU time, share your thoughts in the comments.