小编Dus*_*ser的帖子

有哪些确定性垃圾收集算法?

通过确定性,我隐约意味着可以用于航空航天飞行软件等关键实时软件.垃圾收集器(以及动态内存分配)在飞行软件中是很大的禁忌,因为它们被认为是非确定性的.但是,我知道正在对此进行研究,所以我想知道这个问题是否已经解决了.

我还在问题中包括任何垃圾收集算法,这些算法限制了它们的使用方式.

algorithm garbage-collection deterministic real-time

16
推荐指数
4
解决办法
4680
查看次数

多个线程调用相同的函数

假设我们有多个线程都调用相同的函数:

def foo 
  # do stuff ...
end

100.times do |i|
  Thread.new do
    foo
  end
end
Run Code Online (Sandbox Code Playgroud)

如果当前有两个或多个线程foo,那么它们各自共享相同的局部变量foo吗?

这与我的第二个问题有关.线程是否具有单独的堆栈帧,或者它们是否在单个进程中共享堆栈帧?具体来说,当每个调用多个线程foofoo返回之前,foo堆栈上是否有多个副本,每个副本都有自己的局部变量,或者foo堆栈中只有一个副本?

ruby stack multithreading

8
推荐指数
1
解决办法
4714
查看次数

C++重载运算符 - >()没被调用?

任何人都可以解释为什么重载运算符 - >类Foo没有从类型Foo*的指针调用?

#include <iostream>
using namespace std;

class Foo {
public:
Foo * operator -> () {
    cout << "calling Foo * operator -> ()\n";
    return this;
}
    int x;
};


void main() {
    Foo f;
    Foo * pF = &f;
    pF->x;                  // Why is overloaded operator-> not being called here?
    (pF->operator->())->x;  // This works.

    cout << "End test.\n";
}
Run Code Online (Sandbox Code Playgroud)

c++ operator-overloading

0
推荐指数
1
解决办法
188
查看次数