为什么线程会锁定资源?

时间:2015-01-20 14:08:14

标签: multithreading locking

我最近读到线程锁是系统资源,因此它们必须正确释放"就像内存和#34;一样。我意识到我并没有真正意识到这一点。

有人可以提供一些有关这一事实的进一步阐述或指出一个很好的参考?更具体地说:我如何考虑在更深层次的系统级别实现锁?泄漏锁的可能后果是什么?系统中是否有最大可用锁数?

1 个答案:

答案 0 :(得分:0)

所有这一切都意味着您必须小心锁定的任何东西都会被释放,类似于您要小心关闭网络连接或文件或图形设备上下文等等。如果你编写的代码不是那么谨慎,那么当你无法访问被锁定的东西时,你就有可能导致程序死锁或无法进展(因为锁定点是为了确保多个线程可以安全地访问某些东西,因此如果一个线程保持锁定状态,则其他需要访问它的线程将被禁止。

该程序在物理锁用完之前很长时间会出现严重的性能问题,因此通常您不必担心可用锁的数量。

相关问题