A core is a unit of the CPU which can do all the operations (addition, substraction, multiplication…) on your data.
A logical CPU or thread analyses the current program and pilots the core when computation are needed. We can have a core shared by multiple logical CPU. In such a case, some thread could sleep the time to perform a computation on the core if 2 logical CPU need the core at the same time.