問題タブ [ownership-semantics]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - フォーク後のグローバル リソースの所有権
Foo
何らかのリソースを保持する を考えてみましょう
およびグローバルstd::vector<Foo>
. ばかげた例かもしれませんが、問題をよく示しています。
std::vector<Foo> bar;
さて、プロセスはfork
s.
が子プロセスによってのみ変更される場合bar
は、子プロセス内で を呼び出すexit
のが適切です。を呼び出すと_exit
、Foo
bar 内の :s がリークします。bar
親が fork の前にいくつかのものを追加した場合、これらのオブジェクトは 2 回破棄される可能性があります。あるいは、これらは別のオブジェクトと見なす必要があるため、これは問題ではないかもしれません。
と一緒にオブジェクトの寿命を処理する適切な方法は何ですかfork
? この問題に対処する唯一の正気な方法は、子供exec
に最初からやり直させることですか?
プログラムのこの時点では、スレッドが 1 つだけであることが保証されていることに注意してください。
rust - 移動後の構造体のフィールドの変更
私は次の行動に戸惑いました: 何が起こっているのか誰か説明してもらえますか?
次のコードを検討してください。
具体的には、次のことに戸惑いました。
- への更新は、移動が発生し
p1.cx
た場合でも許可されます。 - によって返される値は
p2.x
、実際には更新された 5000 ではなく、古い100
.
コピー特性がないため(したがって移動)、新しい値を期待していたので、更新された値(5000
)を出力する必要があるセルが1つだけあると予想していました。
しかし、私は何かが欠けているに違いありません。任意のヒント?前もって感謝します!
rust - Rust が所有権を推論するのではなく、所有権の注釈を必要とするのはなぜですか?
Rust が変数の所有権を完全に推論しないのはなぜですか? 注釈が必要な理由