首先:cpu随机的不断在各个线程之间切换执行,当共享数据需要被多条语句执行时,很有可能在某条语句执行完以后但操作数据的目的还没有完成时挂起,cpu切换到其他线程执行,这时就会导致数据错误的问题发生,因此需要线程同步,使某段代码内每次只能允许有一个线程执行,保证数据安全。
第二个问题,为什么要使用多线程,比如当你的程序中涉及到多个 很多次数的循环时,如果是单线程的话,第一个循环不执行完,第二个循环就执行不到,所以你的程序运行一次效率会很低,而你把这些循环分别开启一个线程来执行的话,那么cpu会在他们之间来回切换执行,也就说的同时进行,那么 效率自然会高很多。
|