纠正多线程的认识误区,多线程是并发,而不是并行,即不是开多个窗口,而是共用cpu,效率上没有提升,只是没有让任务等待而已。

纠正多线程的认识误区,多线程是并发,而不是并行,即不是开多个窗口,而是多个任务共用cpu,理论上来讲效率上没有提升,只是没有让任务等待而已。

不是开多个窗口

不是开多个窗口

不是开多个窗口


那么,之前很多人认为的:多个线程是完全独立的在跑,即开了多个窗口再跑,是不对的。

那么基于这种错误认识建立起来的知识学习,也是错误的。

如syncronized等,都要重新理解。

synchronized不是保证同一个时刻只能有一个线程访问该方法,因为就算不加synchronized,某一个时刻也只能有一个线程执行该方法,因为某一个时刻只能有一个线程在运行,因为线程是并发的,公用cup,进行cpu轮换。

synchronized是保证了原子操作,即某被syncronized关键字修饰的方法一旦被调用,就不能被打断,即要等到add方法彻底执行完才行,期间要一直占用cpu,不能被抢去,这就是原子操作的含义。也是syncronized的正真意义。








猜你喜欢

转载自blog.csdn.net/ideality_hunter/article/details/80681725
今日推荐