pošlu do fronty funktor, který umí zdroj uklidit.
Rozdíl je v tom, že ReferenceQueue je pasivní a je nutné ji pollovat, zatímco to moje je aktivní a uvolňuje zdroje ve chvíli, kdy GC uklidí ten ukazatel. Ten rozdíl se může zdát nepatrný, ale na telefonech to u dlouhoběžící aplikace dělá docela velký rozdíl ve spotřebě baterie.
To jsem trochu zmatený... Pokud se ten funktor provede okamžitě, tak to tam není fronta, ne? Já si pod pojmem "fronta" představím datovou strukturu (FIFO, v tomto konkrétním případě). Jak vypadá aktivní fronta? Že se při vložení funktoru probudí vlákno které funktor vyzvedne a provede? To by se asi dalo udělat i v bytecode (možná ne tak efektivně, nevím jak jsou na tom synchronizační primitiva u ARM JVM).
Jde o frontu smyčky zpráv (v Androidu
Handler, ve Swingu
SwingUtilities.doLater), takže ano, pokud to vlákno neběží, tak jej to probudí, a pokud ve frontě nic není, tak se vlákno uspí.