Dalam pengaturcaraan Java, antara muka ExecutorService menyediakan cara yang mudah untuk mengurus urutan untuk melaksanakan tugas. Walau bagaimanapun, kadangkala mungkin terdapat keperluan untuk perkhidmatan pelaksana yang beroperasi pada utas semasa dan bukannya membuat utas berasingan.
Coretan kod yang disediakan cuba menangani keperluan ini dengan membuat CurrentThreadExecutor secara bersyarat apabila bilangan utas adalah dinyatakan sebagai sifar, jika tidak menggunakan Executors.newThreadPoolExecutor standard. Walau bagaimanapun, pendekatan ini mempunyai had dan tidak sesuai untuk situasi di mana kod bergantung pada kumpulan benang.
Penyelesaian yang lebih diperkemas yang mengelakkan kelemahan ini tersedia dalam Java 8. Oleh memanfaatkan rujukan kaedah Runnable::run, anda boleh mencipta pelaksana yang hanya memanggil tugas secara langsung pada urutan semasa:
<code class="java">Executor e = Runnable::run;</code>
Pendekatan ini memastikan bahawa pelaksanaan tugasan tidak melibatkan sebarang overhed benang tambahan atau pengurusan kolam, menjadikannya pengganti yang sesuai untuk senario di mana pelaksanaan kolam benang tidak diingini.
Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Perkhidmatan Pelaksana Thread-Neutral di Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!