Fiziksel çekirdekler kendi başına özerk işlem birimleridir, kendi ALU/FPU ve pipeline'larına sahiptirler. Thread'lar ise bir uygulamanın olabileceği en küçük parçadır. Bir uygulamayı açtığınızda aslında birden fazla thread açılır, threadler programın bütününü oluşturur. İşlemleri tek bir thread yerine küçük parçalara bölmek, birbirinden bağımsız çalışmalarını ve çok çekirdekte daha verimli olmalarını sağlar. Sizin bahsettiğiniz thread aslında sanal çekirdek. Ancak insanların aklında farklı kalmış. Niye o şekilde halk ağzına oturmuş bilmiyorum.
Sanal çekirdek ise Hyperthreading(AMD'de SMT) olarak bilinir. Fiziksel çekirdeklerde çalışan threadlar sadece işlemci kullanmaz, işlemlerini yapabilmeleri için RAM/Depolama/İnternet veya diğer dış birimlerden veri ve sinyal bekler. I/O burst dediğimiz bu olayda CPU çekirdeği atıl kalır. Her fiziksel çekirdeğe açılan sanal çekirdek ikinci bir pipeline oluşturur. İşlemci, I/O bekleyen thread yerine I/O'su zaten tamamlanmış ve çalışmaya hazır başka bir thread'i o çekirdeğe atar. Bu sayede aynı çekirdeğin boş zamanları azaltılarak birim sürede daha fazla performans kazanılır.