30得票2回答
为什么在 C 语言中返回 Py_None 前需要执行 Py_INCREF(Py_None)?

为什么在C中返回Py_None之前需要执行Py_INCREF(Py_None)?Py_INCREF(Py_None); return Py_None; 如果省略 Py_INCREF(Py_None),会发生什么?

8得票3回答
将字面字符串赋值给NSString使用"="号实际上是做什么?

以下这行代码实际上是做什么的? string = @"Some text"; 假设“string”在头文件中这样声明: NSString *string; 在这里,"="实际上是做什么的?它对"string"的引用计数有什么影响吗?特别是,假设由于某种原因没有将"string"...

22得票1回答
初始化属性,点符号表示法

在我的init方法中,使用点符号将retain属性初始化为nil是不好的想法吗? 对于任何普通的属性,例如:@property (nonatomic, retain) id foo; 假设在我的init方法中我设置了self.foo = nil。合成的方法首先会释放或自动释放foo(不确定其...

7得票1回答
无锁栈中的分离式引用计数是如何工作的?

我正在阅读《C++并发编程实战》第二版,它介绍了一种无锁栈的分离引用计数技术。 一种可能的技术涉及使用每个节点不止一个引用计数:内部计数和外部计数。这些值的总和是对该节点的引用总数。外部计数与指向节点的指针一起保留,并在每次读取指针时增加。当读者完成节点操作后,会减少内部计数。一个简单的读取...

8得票1回答
PHP中数组的引用是如何工作的?

我正在阅读关于PHP变量引用的文章:http://derickrethans.nl/talks/phparch-php-variables-article.pdf,想要核对一下我的理解是否正确,特别是在哪些情况下会创建新的变量容器。 对于非数组变量而言,只有在分配一个未指向具有is_ref设...

25得票2回答
Rc或Arc有一个操作能够克隆底层值并将其返回给调用者吗?

我正在寻找类似于take的原子操作,具体如下: impl<T: Clone> for Arc<T> { fn take(mut self) -> T { Arc::make_mut(&mut self); Arc:...

11得票2回答
cv::Mat是线程安全的吗(原子赋值+引用计数)?

我正在尝试跨线程共享一张只读的图片。通常情况下,我会使用boost::shared_ptrs来完成这件事,但由于cv::Mat已经是一个引用计数容器,因此我一直在尝试以相同的方式使用它,假设它是基于引用计数的,因为有关线程安全性在引用计数中的说明: http://opencv.willow...

42得票4回答
使用ARC的优缺点是什么?

使用新的自动引用计数 (ARC) 内存管理风格在 iOS 项目中有什么优缺点? 在使用 iOS 5.0 SDK 进行开发时,您是否可以选择不使用 ARC? 对于一个新项目,您推荐使用 ARC 还是手动引用计数 (MRC)? 使用 ARC 的应用程序能否在早于 iOS 5.0 的旧操作系统...

8得票1回答
我可以避免使用显式生命周期标识符,改用引用计数(Rc)吗?

我正在阅读《Rust Book》,一切都很容易理解(感谢书的作者),直到涉及到lifetimes。我花了一整天的时间阅读了许多关于生命周期的文章,但仍然对正确使用它们非常不确定。 尽管如此,我理解的是,显式生命周期指定符的概念旨在解决悬空引用的问题。我也知道 Rust 有引用计数智能指针(R...

16得票1回答
为什么这个字符串的引用计数是4?(Delphi 2007)

这是一个非常特定于Delphi(甚至可能是特定于Delphi 2007)的问题。我目前正在编写一个简单的字符串池类来池化字符串。作为一名优秀的程序员,我还添加了单元测试,并发现了一些困惑我的事情。 下面是实现字符串池化的代码:function TStringPool.Intern(const...