如果A类有两个同步方法,比如methodA和methodB.如果一个线程正在访问methodA,另一个线程可以访问methodB吗?根据我的理解,当访问methodA时,线程获取对象的锁定,其他线程不应该同时访问methodB.但这会使性能降级很多,对吧?而且,我似乎习惯于阅读一篇文章说其他线程可以访问methodB.哪一个是正确的?
如果A类有两个同步方法,比如methodA和methodB.如果一个线程正在访问methodA,另一个线程可以访问methodB吗?根据我的理解,当访问methodA时,线程获取对象的锁定,其他线程不应该同时访问methodB.
那就对了; 如果一个线程持有对象的锁,其他线程必须等待才能获得锁.当然,只有两个线程都在完全相同的对象上调用方法时才会出现这种情况.
但这会使性能降级很多,对吧?
它可能会影响性能,但有时需要,例如防止两个线程同时修改相同的数据.
而且,我似乎习惯于阅读一篇文章说其他线程可以访问methodB.哪一个是正确的?
第一个是正确的,第二个是不正确的.
| 归档时间: |
|
| 查看次数: |
158 次 |
| 最近记录: |