GC作为线程同步机制

时间:2015-11-24 12:21:10

标签: .net garbage-collection synchronization clr

阅读CLR via C#(顺便出版的优秀书籍)我偶然发现了以下注释:

  

垃圾收集系统有许多不错的功能:没有内存泄漏,没有   内存损坏,没有地址空间碎片和减少的工作集。现在,一个   新的:同步。 这是正确的,您可以将GC用作线程同步   机制。问题:如何知道所有线程何时使用对象完成?   答案:GC确定了对象。利用所有这些都没有错   GC是您构建软件时的功能。

怎么样?

他是否意味着我可以使用Finalize通知其他“实时”对象,这个对象不再被任何线程访问?

如果是这样,由于以下事实,这不是一个非常糟糕的主意:

  • Finalize调用是非确定性的(只要GC感觉它就会被调用)。
  • 如果Finalize引发异常(它正在调用其他对象,而不是不可能发生),它会终止进程,因为无法捕获此类异常。

0 个答案:

没有答案