resource-management相关内容

理解术语和概念的含义 - RAII (Resource Acquisition is Initialization)

C++ 开发人员能否向我们详细描述一下 RAII 是什么,为什么它很重要,以及它是否可能与其他语言有任何关联? 我确实知道一点.我相信它代表“资源获取就是初始化".然而,这个名字与我(可能不正确)对 RAII 的理解不符:我的印象是 RAII 是一种在堆栈上初始化对象的方式,这样,当这些变量超出范围时,析构函数将自动被调用导致资源被清理. 那为什么不称为“使用堆栈触发清理"(UTSTT ..
发布时间:2022-01-16 09:25:32 C/C++开发

Java 中的 RAII ......资源处理总是那么丑陋吗?

我刚玩过Java文件系统API,得到了以下函数,用于复制二进制文件.原始来源来自 Web,但我添加了 try/catch/finally 子句以确保如果发生错误,缓冲流将在退出函数之前关闭(从而释放我的操作系统资源). 我修剪了函数以显示模式: public static void copyFile(FileOutputStream oDStream, FileInputStream oS ..
发布时间:2021-12-22 09:03:20 Java开发

“使用/尝试资源"的简单 Scala 模式;(自动资源管理)

C# 具有 using 和 IDisposable 接口.Java 7+ 具有与 try 和 AutoCloseable 接口相同的功能.Scala 允许您针对此问题选择自己的实现方式. scala-arm 似乎是流行的选择,由 Typesafe 的一名员工维护.然而,对于这样一个简单的行为来说,似乎非常复杂.澄清一下,使用说明很简单,但了解所有代码在内部是如何工作的却相当复杂. 我刚 ..
发布时间:2021-07-15 19:22:37 其他开发

Scala 有哪些自动资源管理替代方案?

我在网上看到了很多 Scala 的 ARM(自动资源管理)示例.写一个似乎是一种仪式,尽管大多数看起来都非常相似.不过,我确实看到了一个使用延续的很酷的例子. 无论如何,很多代码都有一种或另一种类型的缺陷,所以我认为在 Stack Overflow 上有一个参考是个好主意,我们可以在那里投票选出最正确和最合适的版本. 解决方案 暂时 Scala 2.13 终于支持:try with ..
发布时间:2021-07-15 19:18:35 其他开发

为什么使用比使用更好?

根据此MSDN页面上的最后一句话 使用相比,首选$ c>使用。我在其他地方都听说过(例如,此答案)。为什么是这样?我知道后来添加了 use 。但是有什么区别呢?从表面上看,使用 似乎更有用,因为您可以控制何时调用 Dispose(),并且可以显式忽略边界值(例如,(fun _-> ...))。 解决方案 我认为偏爱 use 的原因仅仅是因为语法更简单。许多其他语言构造也可以表示为函数(例如 ..
发布时间:2020-10-22 06:14:35 其他开发

是否可以防止Google App Engine上的DoSing?

我正在考虑为Google App Engine开发一款应用,该应用不应该获得太多流量。我真的不想支付超过免费配额。但是,通过重载应用程序并超过配额,似乎很容易导致拒绝服务攻击。是否有任何方法可以防止或使其难以超过免费配额?例如,我知道我可以限制来自IP的请求数量(使其难以超过CPU配额),但是有什么方法可以使难以超过请求或带宽配额吗? 解决方案 没有防止DoS的内置工具。如果您使用java ..
发布时间:2018-05-03 18:58:35 其他开发

如果删除[] p失败会怎么样?

假设我有一个指向动态分配的10个元素数组的指针: T * p = new T [10] ; 稍后,我要发布该数组: delete [] p; 如果其中一个 T 析构函数会发生什么抛出异常?其他元素还会被破坏吗?内存会释放吗?传播异常还是程序执行终止? 同样,当 std :: vector 被销毁,其中一个 T 析构函数抛出? ..
发布时间:2017-09-29 11:48:56 C/C++开发

Java中的RAII ...资源处理总是如此丑陋?

我刚刚玩过Java文件系统API,并且下载了以下功能,用于复制二进制文件。原始来源来自Web,但是我添加了try / catch / finally子句,以确保在出现错误的情况下,缓冲区流将被关闭(因此,我的操作系统资源被释放),然后退出该函数。 > 我修剪了函数以显示模式: public static void copyFile (FileOutputStream oDStream ..
发布时间:2017-05-14 09:30:01 Java开发

C ++中的什么包装类应该用于自动化资源管理?

我是一个C ++业余爱好者。我写一些Win32 API代码,有句柄和奇怪的复合分配对象aplenty。所以我想知道 - 是否有一些包装类可以使资源管理更容易? 例如,当我想加载一些数据时,我打开一个文件 CreateFile()并获取 HANDLE 。当我完成它,我应该调用 CloseHandle()就可以了。但是对于任何合理复杂的加载函数,将会有几十个可能的退出点,更不用说异常。 所 ..
发布时间:2016-10-14 20:12:31 C/C++开发

理解术语的含义和概念 - RAII(资源获取是初始化)

您能C ++开发人员给我们一个很好的描述RAII是什么,为什么它很重要,以及它是否可能与其他语言有什么关系? 我做知道一点。我相信它代表“资源获取是初始化”。然而,这个名字不与我的(可能不正确)理解RAII是什么:我得到的印象是RAII是一种初始化堆栈上的对象的方式,这样当这些变量超出范围,析构函数将自动 那么为什么不叫“使用堆栈触发清理”(UTSTTC :)?你如何从那里到“RAII ..
发布时间:2016-10-11 20:14:14 C/C++开发

&是什么QUOT;打开连接"实际上意味着什么呢?

我试图解释给别人为什么数据库连接实现IDisposable,当我意识到我真的不知道什么是“打开连接”实际上意味着。结果 所以我的问题是 - 什么是C#实际上,当它打开一个连接呢? 感谢您。 解决方案 有实际参与实施的连接​​两班(实际上是多了,但我简化)。 其中一个是在的IDbConnection 实施(的SQLConnection , NpgsqlConnection ,您在cod ..
发布时间:2016-08-28 13:16:49 C#/.NET

有什么用关键字和IDisposable接口之间的关系?

如果我使用使用关键字,我还是要落实的IDisposable ? 解决方案 如果您使用的 使用语句的封闭式必须已经实施的 的IDisposable 否则编译器会发出错误。因此,考虑IDisposable的实现要使用的prerequisite。 如果你想使用使用您的自定义类语句,则必须实现的IDisposable 它 。然而,这是一种落后的这样做,因为没有意义,这样做是为了它的缘故。只有当你有事 ..
发布时间:2015-11-24 20:08:51 C#/.NET