多线程和单线程有什么本质区别
理解1:如果是多核,那么可以在物理上真实地做到同一时间做多个线程;而如果是单核,那么即使是多线程,一个时刻也只能做一个线程。
理解二:在单核的前提下,假如有10个任务。如果用单线程,那么我可以依次做这10个任务-----做完地一个做第二个做完第二个做第三个......而如果用多线程的话,等效于有一个任务队列,我run了这10个任务线程等于把这10个线程都插入了这个任务队列中,然后这10个任务去抢CPU。感觉上有点异步的味道:我不必等一个任务完成了才能执行第二个、我不必等这10个任务都完成了才能继续往下走。
这两个理解有什么错误的地方吗?