簡単な紹介:私はマルチスレッドコードに取り組んでおり、動的に割り当てられたオブジェクトを2つのスレッド間で共有する必要があります。コードをよりクリーンにする(そしてエラーが発生しにくい)ために、各スレッドのオブジェクトを明示的に「削除」したいので、を使用したいと思いますshared_ptr
。
最初の質問:
-> operator
inの実装に、実行時にshared_ptr
余分なオーバーヘッド(たとえば、より大きい)があるかどうかを知りたいです。unique_ptr
私が話しているオブジェクトは通常、作成後に一度だけコピーされた長寿命のインスタンスであり(スレッド間でそれらを分散する場合)、これらのオブジェクトのメソッドとフィールドにのみアクセスします。
私は、shared_ptr
参照カウントのみを保護することを認識しています。
2番目の質問:
shared_ptr
libstdc ++でどの程度最適化されていますか?常にミューテックスを使用しますか、それともアトミック操作を利用しますか(私はx86およびARMプラットフォームに焦点を合わせています)?