If you eat nutritiously dense food you generally don't get hungry that often. If you eat processed garbage then you tend to get hungry all the time as your body is craving nutrition, however if you are feeding it nutrient devoid calories you will be forever hungry and have cravings, feel flat when training and lack energy.
Keep in mind that calories and nutrition are two different things.
A person can eat 5000 calories a day and get almost zero nutrition or you could eat 1000 calories a day and get all the nutrition you require. The first person will still be hungry and have constant cravings while the second will be satisfied till his body requires further nutrition.
That's why nutrient dense foods leave you satisfied and full for much longer.
Humans never ate three or five meals a day, or never had snacks, it's a new phenomenon created by food companies who want to sell you all this unnecessary stuff, my daughter is 16 and she naturally eats one meal a day (I have never told her to do it), usually dinner which generally consists of meat/fish/eggs/vegetables/salad.
it's actually how we are meant to eat as a species.
It's not set in stone, If I get hungry (I mean hungry, not bored feeling like I could eat something) then I will eat something.
However if you find that you are hungry all the time or too weak to train after not eating for 20 minutes it's probably a good time to take a good hard look at the quality of the food that you are consuming, chances are you are eating nutrient devoid processed foods, or low quality meat such as store bought chicken or pork brought up on GMO feeds, or simply eating foods that humans were never meant to eat.
You could also be lacking essential electrolytes which will manifest in feeling weak and flat during workouts.