0

比如说,我的应用程序有 n 个线程试图读取同一个集合对象,比如一个列表。会不会有任何比赛规则或死锁或任何类似的问题?换句话说,是否有必要锁定 List 以进行只读操作?

4

2 回答 2

2

是否要限制用户数量完全取决于您。正常情况下,如果你在 Windows 中看到 Excel 文件,当它通过网络共享时,一次最多可以打开 10 人阅读。这个数字可以增加到任何数字,或者就此而言根本不需要任何限制。想不想限制,是你作为程序员的心愿。您唯一需要记住的是,如果文件在服务器上,并且如果每秒有 100 万个读取请求,如果没有施加限制,那么您的系统很可能会变慢并且不会能够为任何人服务。相反,如果您施加锁定,说一次只有 100 个用户可以读取它,您可以确保您的系统不会过载。这是我正在解释的最坏情况下的实时场景。

但是,如果您只是为了学习而要求它,我会说它不是必需的。如果 n 个用户打开同一个文件进行阅读,理想情况下,您可以授予所有 n 个用户读取集合对象的权限。不需要同步机制。当没有同步时,就不会有死锁或任何东西。

希望这能消除您的困惑。谢谢。

于 2012-04-20T05:56:19.000 回答
1

除非读取操作导致集合对象的内部状态更改,否则没有必要。

于 2012-04-20T01:48:14.667 回答