If one core gets used at a time, then how does it know which core im assigning to which VM? So basically you would only run 8 VM's b/c there is only 8 cores?
This is dissapointing, a regular pc for what i need can usually run fine on 512 MB of Ram, 40 GB Hard Drive and a 2Ghz old single core processor. so I figured the configuration I had would be fine for atleast 15 pcs.
You don't assign a core to a VM. You assign the number of cores and the number of sockets. You can hot a socket but can't hot-add a core, but that doesn't matter if your guests only have a single vCPU. If you have 8 cores but 16 single-CPU guests, you'll have available host CPU if your guests don't consume CPU more than 50% of their time (although you don't really want your host to hit 100% for long stretches). If your guests use CPU only 10% of their time, your total host CPU load would only be 20%.
How many VMs you can run depends on the workload. A "normal" PC is idle for the vast majority of its time. With modern CPUs, oversubscribing CPUs can be easily done with no performance impact. I've got a cluster that has a 4:1 vCPU to core ratio and the 6 hosts are running from 7-20% cpu utilization. Another cluster has a 1.61:1 oversubscription and none of the hosts go over 10% cpu utilization. I've got another cluster that can easily go CPU-bound and has minimal oversubscription. Some guests are CPU-heavy, some memory-heavy, and some sit there doing nothing but anti-virus updates/scanning all day long followed by backups. In some environments you'll find guests that are network-bound or disk-bound.