synchronized问题?
wtjd 2004-07-27 04:55:29 假设我自定义某个线程myThread(通过继承Thread), 并且我在它的运行体加上同步关键字,即sychronized void run(){..}。 现生成它的两个对象a和b,我想问的是
1,a和b两个线程在任何时刻都只能有一个线程(要么是a要么是b)运行run()方法吗?
2,如果我没有加sychronized关键字,我觉得情况也一样,因为任何一时刻CPU只能被一个线程所占有(要么是a要么是b), 这样的话,既然CPU任何时刻都只被一个线程占有,那么任何时刻也当然只有一个线程运行run()方法? 我这样理解错在哪呢?
3,加与不加同步关键字到底最本质的区别在哪里?为什么我总是无法理解同步关键字的用处,我知道它是用来同步的,可是具体是怎么同步的呢?我希望从CPU占有角度来分析?