Nah lho, aku dapat contoh Thread lagi,..
Di coba terus dikembangkan ya,..
Kita sama2 belajar,..
package niyelz;
import java.util.logging.Level;
import java.util.logging.Logger;
public class SimpleThread
{
// Menampilkan pesan, waktu, dan nama thread
static void threadMessage(String message)
{
String threadName = Thread.currentThread().getName();
System.out.format("%s: %s%n", threadName, message);
}
private static class MessageLoop implements Runnable
{
public void run()
{
String importantInfo[] =
{
"pesan pertama",
"pesan kedua",
"pesan ketiga",
"pesan keempat",
"pesan kelima",
"pesan keenam"
};
try
{
for (int i = 0; i < importantInfo.length; i++)
{
//tunda selama empat detik
Thread.sleep(4000);
//cetak pesan
threadMessage(importantInfo[i]);
}
}
catch (InterruptedException e)
{
threadMessage("belum selesai ne !!!");
}
}
}
public static void main(String[] args)
{
// waktu jeda sebelum interrupt
// default waktu selama satu menit
// coba ubah nilainya agar terjadi interrupt
long patience = 1000 * 60;
threadMessage("Memulai Thread MessageLoop");
long startTime = System.currentTimeMillis();
Thread t = new Thread(new MessageLoop());
t.start();
threadMessage("Nungguin Thread MessageLoop");
//loop until MessageLoop thread exits
while (t.isAlive())
{
threadMessage("tungguin yee...");
try
{
//menunggu maksimal satu detik agar thread MessageLoop selesai
t.join(1000);
}
catch (InterruptedException ex)
{
Logger.getLogger(SimpleThread.class.getName()).log(Level.SEVERE, null, ex);
}
if (((System.currentTimeMillis() - startTime) > patience) && t.isAlive())
{
threadMessage("Tired of waiting!");
t.interrupt();
try
{
// menunggu thread MessageLoop sampai benar - benar selesai
t.join();
}
catch (InterruptedException ex)
{
Logger.getLogger(SimpleThread.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
threadMessage("Akhirnya !!!");
}
}
0 komentar:
Posting Komentar