Mam obszar pamięci owinięty JNI NewDirectByteBuffer
. Chciałbym uruchomić kod darmowy/zwolnienia w urządzeniu czyszczącym ByteBuffer
. Czy istnieje sposób, aby to zrobić, czy też mam do zaoferowania niestandardową, darmową metodę, z której użytkownik będzie musiał zadzwonić pod numer ByteBuffer
?Zwolnienie pamięci zapakowanej w NewDirectByteBuffer
Edit
celu wyjaśnienia, że przydzielone pamięci siebie i nazywa NewDirectByteBuffer
siebie. Chciałbym wiedzieć, w jaki sposób powinienem skoordynować czyszczenie z urządzeniem czyszczącym.
W DirectByteBuffer Java 8 można wywołać metodę Cleaner.clean(), chociaż nie jest to publiczny interfejs API, więc należy użyć wiedzy, że nie jest przenośny. –
@PeterLawrey A to będzie wywoływać free() zawsze? Co jeśli potrzebuję innej funkcji czyszczenia niż wolna()? –
Zrobi wszystko, co jest właściwe, aby uwolnić pamięć. Nie masz żadnych dowodów, że wymaga to wywołania 'free()'. – EJP