慕村9548890
1:读取数据的时候,也要看是否有别的线程在写数据,如果有别的线程在写,还是需要加锁的,如果是静态数据,所有线程只是进行读取,一般无需枷锁,当然访问一些临界资源,诸如文件操作等还是需要加锁的。2:使用一个方法是否需要加锁,需要看你的方法是否是可重入的,如果需要的数据都是由调用者提供的,在方法内部不会调用其他的不可重入的方法,且方法中不访问静态全局的非常量数据、不返回此类数据,这种情况下多线程条用一个方法无需加锁,如果出现上述情况,则需要将不可重入的方法改造为可重入的。还要考虑一点是在方法内部多线程的线程安全问题,例如出现1中的情况,出现特别出现静态或者全局数据的访问的情况。3:委托的情况和2是类似的。