>> So if I run two seperate single thread programs they will use one core each?
That's what should happen, broadly speaking, but of course there are a lot of background processes running as well, so it all depends on how well the OS handles the allocation of threads to processors.