CPU在某一个时间点上确实只能执行一个线程,但是多线程不是由于多核或者双核才叫多线程。
是由于,很多个线程在并行执行的时候,CPU根据一定的线程调度算法,频繁的进行线程切换,当正在执行的一个线程需要进行IO操作或者需要访问内存的时候,CPU完全可以放弃该线程,转而调度线程就绪队列上的其他线程,被放弃的线程则进入阻塞状态,IO操作或者访问内存操作结束之后,该线程可以进入线程就绪队列上。
人们通常意义上的多线程指的是,由于CPU根据一定的线程调度算法来切换线程,所以在一个时间段上,可以看做很多线程在并发执行。
其实还是在某一个时间点上只有一个线程在运行罢了。
同一个进程下的所有线程都只能在CPU同一个核下运行,同一进程下的多个线程在同一个核下轮流使用处理器,因为处理速度快,看起来是并行,实际上同一进程下的多线程是串行。
多核可以同时运行多个进程。
是的,多CPU正是为了多线程运行的。但是要注意线程间的同步。
纠正一个概念,是并发运行,不是并行运行。
现在的软件一般支持多线程的
那要看这个软件对多线程是否支持