Thread is the smallest work unit of a program.
A core represents a CPU instance that can do work.
Virtual cores uses intelligent thread schedulers and sometimes partially duplicated cores. Hyperthreading costs something like 5-10% additional die space but can provide something like 30-50% performance boost in certain workloads.
To add some:
Threads are subsets of processes and can use multiple parts of the CPU/RAM while other threads in the process use others. Check your Resource Monitor and you'll find that many processes have vastly large amounts of 'threads'.