多个线程同时共享相同的功能

时间:2013-09-17 01:50:00

标签: java multithreading thread-safety

如果我们创建例如3个线程T1,T2和T3,它们每个都调用相同的函数或过程,那么如果我们调用它们一段时间T1.start() T2.start() T3.start()它是否有效?或者我们需要同步它们?

2 个答案:

答案 0 :(得分:4)

您不同步功能,同步他们对资源的访问权。

如果任何函数修改公共资源 * 而其他函数需要访问它,无论是读取还是写入,都需要同步对资源的访问。否则,无需添加同步。

<小时/> * 资源可以是成员变量,静态或非静态,内存中的对象,操作系统对象(如文件或套接字),集合和等等。

答案 1 :(得分:1)

只有在不同线程中读取/写入相同的变量(状态)时才需要同步。如果方法仅使用局部变量 - 则不需要同步它们。