如果我们创建例如3个线程T1,T2和T3,它们每个都调用相同的函数或过程,那么如果我们调用它们一段时间T1.start() T2.start() T3.start()
它是否有效?或者我们需要同步它们?
答案 0 :(得分:4)
您不同步功能,同步他们对资源的访问权。
如果任何函数修改公共资源 * 而其他函数需要访问它,无论是读取还是写入,都需要同步对资源的访问。否则,无需添加同步。
<小时/> * 资源可以是成员变量,静态或非静态,内存中的对象,操作系统对象(如文件或套接字),集合和等等。
答案 1 :(得分:1)
只有在不同线程中读取/写入相同的变量(状态)时才需要同步。如果方法仅使用局部变量 - 则不需要同步它们。