Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bolehkah Pengumpul Sampah Konservatif Boehm Disepadukan dengan Perpustakaan Standard C untuk Aplikasi Berbilang Benang?

Bolehkah Pengumpul Sampah Konservatif Boehm Disepadukan dengan Perpustakaan Standard C untuk Aplikasi Berbilang Benang?

Linda Hamilton
Linda Hamiltonasal
2024-10-26 16:28:30466semak imbas

Can Boehm's Conservative Garbage Collector Be Integrated with the C   Standard Library for Multi-threaded Applications?

Mengintegrasikan Koleksi Sampah Konservatif dengan Perpustakaan Standard C

Soalan:

Dalam pelbagai -aplikasi C berulir, bolehkah pemungut sampah konservatif (GC) Boehm digunakan secara berkesan bersama dengan perpustakaan standard C? Secara khususnya, bagaimanakah pengendali ::new dan pengalokasi yang disediakan oleh std::vector dan std::string harus dikendalikan?

Jawapan:

1. Mentakrif semula operator ::new:

Mentakrifkan semula ::operator baharu dengan GC Boehm tidak perlu. Dengan menggunakan GC Boehm dengan betul, adalah mungkin untuk mengelak daripada mentakrifkan semula ::operator baharu secara eksplisit.

2. Peruntukan untuk Bekas Perpustakaan Standard:

std::vector:

  • Gunakan std::vector dengan parameter pengalokasi eksplisit ditetapkan kepada gc_allocator Boehm. Ini memastikan bahawa kedua-dua struktur data dalaman dan elemen individu diperuntukkan GC.

std::string:

  • Untuk GC-peruntukkan tatasusunan aksara dalaman, gunakan pelaksanaan rentetan tersuai anda sendiri yang diperoleh daripada std::basic_string dan gunakan gc_allocator.
  • Tiada cara mudah untuk memaksa peruntukan GC_malloc_atomic untuk tatasusunan aksara dalam pelaksanaan standard.

Contoh:

Kod berikut menunjukkan pelaksanaan tersuai bagi vektor yang diperuntukkan GC:

<code class="cpp">#include <gc/gc_cpp.h>
#include <gc/gc_allocator.h>
#include <vector>

class Myvec {
  std::vector<int, gc_allocator<int>> _vec;
public:
  Myvec(size_t sz = 0) : _vec(sz) {}
  // ... (rest of class implementation)
};</code>

3. Keserasian dengan g :

Ya, adalah mungkin untuk menggunakan Boehm GC dengan aplikasi yang disusun oleh g . Ikuti garis panduan di atas untuk menyepadukan GC dengan perpustakaan standard dengan berkesan.

Tambahan (Januari 2017):

  • Semak cadangan n2670 dan dan sokongan kutipan sampah untuk potensi penambahbaikan masa depan dalam keupayaan kutipan sampah C .

Atas ialah kandungan terperinci Bolehkah Pengumpul Sampah Konservatif Boehm Disepadukan dengan Perpustakaan Standard C untuk Aplikasi Berbilang Benang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn