簡體   English   中英

是否有其他替代概念可用於處理垃圾收集語言中的非托管資源?

[英]Are there any alternative concepts for handling unmanaged resources in garbage collected languages?

垃圾收集的面向對象編程語言會自動回收未使用的內存,但是所有其他類型的資源(即文件,套接字等)仍然需要手動釋放,因為終結器無法及時(或完全)運行。

因此,此類資源對象通常提供某種“關閉”“處置”的方法/模式,由於多種原因,這可能是有問題的:

  • 必須手動調用Dispose ,這在不清楚何時必須釋放資源的情況下可能會引起問題(與手動內存管理類似的問題)
  • 一次性模式有點“病毒”,因為包含一次性資源的每個類別也必須設為一次性 ,以確保正確清理資源
  • 一次性構件的一類,需要類成為一次性以及的加成,改變接口和類的使用模式,從而打破封裝
  • 一次性模式會產生繼承問題,即,當派生類為一次性時 ,而基類不是

因此,是否有其他替代概念/方法可以正確釋放這些資源? 在這個方向上有任何論文/研究嗎?

一種方法(使用支持它的語言)是手動觸發垃圾回收事件以使終結器運行。 但是,某些語言(如Java)沒有提供可靠的機制。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM