纠正多线程的认识误区,多线程是并发,而不是并行,即不是开多个窗口,而是多个任务共用cpu,理论上来讲效率上没有提升,只是没有让任务等待而已。
不是开多个窗口
不是开多个窗口
不是开多个窗口
那么,之前很多人认为的:多个线程是完全独立的在跑,即开了多个窗口再跑,是不对的。
那么基于这种错误认识建立起来的知识学习,也是错误的。
如syncronized等,都要重新理解。
synchronized不是保证同一个时刻只能有一个线程访问该方法,因为就算不加synchronized,某一个时刻也只能有一个线程执行该方法,因为某一个时刻只能有一个线程在运行,因为线程是并发的,公用cup,进行cpu轮换。
synchronized是保证了原子操作,即某被syncronized关键字修饰的方法一旦被调用,就不能被打断,即要等到add方法彻底执行完才行,期间要一直占用cpu,不能被抢去,这就是原子操作的含义。也是syncronized的正真意义。