Postingan lainnya
Java - thread()
Saya mau bertanya ...
pada saat saya membuat suatu class dengan "implements runnable" di dalam class tersebut saya berikan thread yaitu dengan method start(), stop(), run().
lalu pertanyaannya bagiamanakah cara untuk mengambil data hasil dari run(), dengan langsung memanggil di java class baru dengan sebuah method?(dimana method baru ini tidak menggunakan thread(start(),stop(),run() lagi))
2 Jawaban:
pada class yang implements Callable
<pre> public String call() throws Exception { //proses perhitungan String message = //variable yang ingin dioper return message; } </pre> kemudian panggil class callable tersebut <pre> ClassCallAble callableTask = new ClassCallAble (); threadPool.submit(callableTask); //menggunakan ThreadPoolExecutor </pre>
buat listener:
<pre> interface GetData { void onData(String data); } </pre>
proses class: <pre> class Coba implements Runnable { GetData listener;
Coba(GetData l) {
listener = l;
}
void run() {
// lakukan hitungan
String data = "jos";
listener.onData(data); // lemparkan data
}
} </pre>
jalankan: <pre> GetData l = new GetData() { void onData(String data) { // data diterima disini } } // anonim class new Thread(new Coba(l)).start(); </pre>