Programming languages 是否有编程语言支持自动管理内存以外的资源的例子?

Programming languages 是否有编程语言支持自动管理内存以外的资源的例子?,programming-languages,resource-management,language-concepts,Programming Languages,Resource Management,Language Concepts,自动内存管理的思想得到了新编程语言的大力支持。我感兴趣的是,是否存在自动管理其他资源(如文件、网络套接字等)的概念?对于单线程应用程序,一个资源的模式在代码块的范围内可用,最后进行清理,存在于多种语言中。例子是使用C++,或者在普通的Lisp中使用,在新的Lisp影响的语言中是等价的,在迪伦中是一样的,在Ruby中,你可以把一个块传递给一个文件对象。 < >我不知道有什么东西适合于现代垃圾收集闪耀的多线程环境,缺少在C++中结合RAII和引用计数或AutoPyTR,这并不总是一个简单的组合。 自

自动内存管理的思想得到了新编程语言的大力支持。我感兴趣的是,是否存在自动管理其他资源(如文件、网络套接字等)的概念?

对于单线程应用程序,一个资源的模式在代码块的范围内可用,最后进行清理,存在于多种语言中。例子是使用C++,或者在普通的Lisp中使用,在新的Lisp影响的语言中是等价的,在迪伦中是一样的,在Ruby中,你可以把一个块传递给一个文件对象。 < >我不知道有什么东西适合于现代垃圾收集闪耀的多线程环境,缺少在C++中结合RAII和引用计数或AutoPyTR,这并不总是一个简单的组合。
自动资源管理和自动内存管理之间的一个重要区别是,内存管理通常是不确定的,并且只有在流程需要时才能回收,而资源通常在操作系统级别受到限制,因此一旦不再使用就应该回收。因此,选择智能指针而不是垃圾收集作为管理实现。有一个中间级别的资源—GDI对象、临时文件句柄、线程—应用程序希望限制其使用总量,但不太关心将它们释放到其他进程—这些资源通常是池式的,这使您能够实现自动管理。

对于单线程应用程序,一个资源在代码块的范围内可用的模式(最后有清理)存在于几种语言中。例子是使用C++,或者在普通的Lisp中使用,在新的Lisp影响的语言中是等价的,在迪伦中是一样的,在Ruby中,你可以把一个块传递给一个文件对象。 < >我不知道有什么东西适合于现代垃圾收集闪耀的多线程环境,缺少在C++中结合RAII和引用计数或AutoPyTR,这并不总是一个简单的组合。
自动资源管理和自动内存管理之间的一个重要区别是,内存管理通常是不确定的,并且只有在流程需要时才能回收,而资源通常在操作系统级别受到限制,因此一旦不再使用就应该回收。因此,选择智能指针而不是垃圾收集作为管理实现。有一个中间级别的资源-GDI对象、临时文件句柄、线程-应用程序希望限制其使用总量,但不太关心将它们释放给其他进程-这些资源通常是池式的,这使您能够实现自动管理。

我们现在可以自动管理内存分配的原因之一是我们拥有了太多的内存

在记忆紧绷的日子里,你不得不从系统的每一口中挤出最多的东西

其他资源,如文件句柄和套接字要少得多,仍然需要手动处理

再考虑一下.net compact framework,windows mobile设备有32mb或64mb的易失性内存可供使用并不少见,但想想看,这些内存仍然“很多”

我想知道.net compact framework的占地面积是多少,以及它在具有4mb易失性内存的诺基亚手机上的性能如何

有人有什么想法吗? 这是一个维基答案,请随意更正或添加更多细节


因此,IMHIO我们可以承受缓慢的内存回收,因为我们不会很快耗尽内存,而其他资源则不是这样。

我们现在可以自动管理内存分配的原因之一是我们拥有了这么多内存

在记忆紧绷的日子里,你不得不从系统的每一口中挤出最多的东西

其他资源,如文件句柄和套接字要少得多,仍然需要手动处理

再考虑一下.net compact framework,windows mobile设备有32mb或64mb的易失性内存可供使用并不少见,但想想看,这些内存仍然“很多”

我想知道.net compact framework的占地面积是多少,以及它在具有4mb易失性内存的诺基亚手机上的性能如何

有人有什么想法吗? 这是一个维基答案,请随意更正或添加更多细节


因此,IMHIO我们可以承受缓慢的内存回收,因为我们不会很快耗尽内存,其他资源则不然。

对象持久化和缓存子系统可以被视为文件和资源的自动分配。如果将缓存子系统应用于网络连接,则不必关心文件打开、文件删除等问题 开

一种自动管理网络连接的方法可以在并行计算环境中完成,即MPI,您可以通过编程方式设置处理器互连的形状。而不仅仅是从一个进程向另一个进程发送消息,几乎忽略了它的实现方式。有时,这些消息在套接字中被翻译


如果你有一个函数,让你从它的URL得到一个页面,你会认为它是一种自动套接字管理吗?< /P>

对象持久性和缓存子系统可以被认为是文件和资源的自动分配。如果将缓存子系统应用于网络连接,则不必关心文件打开、文件删除等问题

一种自动管理网络连接的方法可以在并行计算环境中完成,即MPI,您可以通过编程方式设置处理器互连的形状。而不仅仅是从一个进程向另一个进程发送消息,几乎忽略了它的实现方式。有时,这些消息在套接字中被翻译

如果你有一个函数让你从它的URL中得到一个页面,你会认为它是一种自动套接字管理吗?