Beberapa bahasa, misalnya java, memperkenalkan jeda GC yang rendah.
GC itu dapat melakukan sebagian besar pekerjaan tanpa menghentikan seluruh dunia. Ini jelas merupakan masalah yang cukup sulit karena perlu menganalisis memori ketika thread memodifikasinya, menghasilkan data yang dapat digunakan pada awal proses dan tidak lagi ketika selesai, atau data yang tampaknya merupakan sampah tetapi karena referensi dipindahkan dalam memori dan tidak pernah muncul di mana GC sedang mencari.
Jadi pada dasarnya, apa algoritma di balik itu?
Makalah penelitian atau tautan artikel yang benar-benar teknis akan dianggap sebagai jawaban yang valid, karena topik ini benar-benar teknis.
sumber
Alasan kerjanya adalah karena di Jawa, hanya GC yang dapat membebaskan memori yang mungkin berisi referensi GC. Itu berarti bahwa selama Anda dapat membaca objek dalam utas terpisah dengan aman, Anda hanya perlu menghentikan sementara program untuk mengamati referensi pada tumpukan.
Saya akan menyarankan mutasi agar mereka menerapkan beberapa bentuk copy-on-write untuk menginformasikan kepada GC tentang perubahan tersebut.
sumber