Buat FIle RunMyThread .java
package mythread;
public class RunMyThread {
public static void main(String a[]){
System.out.println("Starting Main Thread...");
MyRunnableThread mrt = new MyRunnableThread();
Thread t = new Thread(mrt);
t.start();
while(MyRunnableThread.myCount <= 10){
try{
System.out.println("Main Thread: "+(++MyRunnableThread.myCount));
Thread.sleep(100);
} catch (InterruptedException iex){
System.out.println("Exception in main thread: "+iex.getMessage());
}
}
System.out.println("End of Main Thread...");
}
}
class MyRunnableThread implements Runnable{
public static int myCount = 0;
public MyRunnableThread(){
}
public void run() {
while(MyRunnableThread.myCount <= 10){
try{
System.out.println("Expl Thread: "+(++MyRunnableThread.myCount));
Thread.sleep(100);
} catch (InterruptedException iex) {
System.out.println("Exception in thread: "+iex.getMessage());
}
}
}
}
==============================================
Output:
run:
Starting Main Thread...
Main Thread: 1
Expl Thread: 2
Main Thread: 3
Expl Thread: 4
Main Thread: 5
Expl Thread: 6
Main Thread: 7
Expl Thread: 8
Main Thread: 9
Expl Thread: 10
Main Thread: 11
End of Main Thread...
INNER THREAD
buat file : MyThread .java
package mythread;
class MyRunnableThread2 implements Runnable{
public static int myCount = 0;
public MyRunnableThread2(){}
public void run() {
for (int i = 0; i < 5; i++) {
System.out.println(Thread.currentThread().getName() +"\twith Runnable: MyRunnableImplementation runs..." + i);
}
}
}
public class MyThread {
public static void main(String a[]){
System.out.println("Starting Main Thread...");
Thread thread3 = new Thread(new Runnable() {
@Override
public void run() {
System.out.println("Starting Inner Thread...");
for (int i = 0; i < 5; i++) {
System.out.println(Thread.currentThread().getName() + "\twith Runnable: Inner class Runnable runs..." + i);
}
}
}, "Thread 3");
thread3.start();
MyRunnableThread mrt = new MyRunnableThread();
Thread t = new Thread(mrt);
t.start();
while(MyRunnableThread2.myCount <= 10){
try{
System.out.println("Main Thread: "+(++MyRunnableThread2.myCount));
Thread.sleep(100);
} catch (InterruptedException iex){
System.out.println("Exception in main thread: "+iex.getMessage());
}
}
//=====================================
Thread thread1 = new Thread(mrt, "Thread 1");
thread1.start();
Thread thread2 = new Thread(mrt, "Thread 2");
thread2.start();
System.out.println("End of Main Thread...");
}
}
============================output
run:
Starting Main Thread...
Main Thread: 1
Starting Inner Thread...
Thread 3 with Runnable: Inner class Runnable runs...0
Thread 3 with Runnable: Inner class Runnable runs...1
Thread 3 with Runnable: Inner class Runnable runs...2
Thread 3 with Runnable: Inner class Runnable runs...3
Thread 3 with Runnable: Inner class Runnable runs...4
Expl Thread: 1
Main Thread: 2
Expl Thread: 2
Main Thread: 3
Expl Thread: 3
Main Thread: 4
Expl Thread: 4
Main Thread: 5
Expl Thread: 5
Main Thread: 6
Expl Thread: 6
Main Thread: 7
Expl Thread: 7
Main Thread: 8
Expl Thread: 8
Main Thread: 9
Expl Thread: 9
Main Thread: 10
Expl Thread: 10
Expl Thread: 11
Main Thread: 11
End of Main Thread...
BUILD SUCCESSFUL (total time: 1 second)
+++++++++++++++++++++++++++++++++++++++++++++++++
INNER SIMPLE
package mythread;
public class InnerClassSImple {
public static void main(String args[]){
new Thread(){
public void run(){
System.out.println("hello");
try {
long start = System.currentTimeMillis();
sleep(2000);
System.out.println("Sleep time in ms = "+(System.currentTimeMillis()-start));
} catch (InterruptedException e){
e.printStackTrace();
}
System.out.println("world");
}
}.start();
}
}
package mythread;
public class InnerClassSImple {
public static void main(String args[]){
new Thread(){
public void run(){
System.out.println("hello");
try {
long start = System.currentTimeMillis();
sleep(2000);
System.out.println("Sleep time in ms = "+(System.currentTimeMillis()-start));
} catch (InterruptedException e){
e.printStackTrace();
}
System.out.println("world");
}
}.start();
}
}
run:
hello
Sleep time in ms = 2000
world
BUILD SUCCESSFUL (total time: 2 seconds)
IMPLEMENTAS INNER CLASS +SLEEP
buat file InnerThread.java
package mythread;
public class InnerThread {
public static void main(String a[]){
System.out.println("Starting Main Thread...");
Thread thread2 = new Thread(new Runnable() {
@Override
public void run() {
System.out.println("Starting Inner Thread1...");
for (int i = 0; i < 5; i++) {
System.out.println(Thread.currentThread().getName() + "\twith1 Runnable: Inner class Runnable runs..." + i);
try {
Thread.sleep(1000);
} catch (Exception e) {
System.out.println(e);
}
}
}
}, "Thread 3");
thread2.start();
Thread thread3 = new Thread(new Runnable() {
@Override
public void run() {
System.out.println("Starting Inner Thread2...");
for (int i = 0; i < 5; i++) {
System.out.println(Thread.currentThread().getName() + "\twith2 Runnable: Inner class Runnable runs..." + i);
}
}
}, "Thread 3");
thread3.start();
System.out.println("Main Thread...");
}
}
Starting Main Thread...
Starting Inner Thread1...
Main Thread...
Starting Inner Thread2...
Thread 3 with2 Runnable: Inner class Runnable runs...0
Thread 3 with2 Runnable: Inner class Runnable runs...1
Thread 3 with1 Runnable: Inner class Runnable runs...0
Thread 3 with2 Runnable: Inner class Runnable runs...2
Thread 3 with2 Runnable: Inner class Runnable runs...3
Thread 3 with2 Runnable: Inner class Runnable runs...4
Thread 3 with1 Runnable: Inner class Runnable runs...1
Thread 3 with1 Runnable: Inner class Runnable runs...2
Thread 3 with1 Runnable: Inner class Runnable runs...3
Thread 3 with1 Runnable: Inner class Runnable runs...4
BUILD SUCCESSFUL (total time: 8 seconds)
+++++++++++++++++++++++++++++++
package mythread;
public class Schedule1 {
public static void main(String a[]){
System.out.println("Starting Main Thread...");
int x=0;
while(x <= 5){
x=x+1;
System.out.println("Starting Delay..."+x);
try {
long start = System.currentTimeMillis();
Thread.sleep(1000);
System.out.println("Sleep time in ms = "+(System.currentTimeMillis()-start));
}
catch(InterruptedException ex){
Thread.currentThread().interrupt();
}
}
}
}
run:
Starting Main Thread...
Starting Delay...1
Sleep time in ms = 1001
Starting Delay...2
Sleep time in ms = 1000
Starting Delay...3
Sleep time in ms = 1001
Starting Delay...4
Sleep time in ms = 1000
Starting Delay...5
Sleep time in ms = 1001
Starting Delay...6
Sleep time in ms = 1000
BUILD SUCCESSFUL (total time: 6 seconds)
+++++++++++++++++
TASK EVERY://to run the method myTask every second
package mythread;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
public class TaskEvery {
public static void main(String[] args) {
final ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor();
executorService.scheduleAtFixedRate(new Runnable() {
@Override
public void run() {
myTask();
}
}, 0, 1, TimeUnit.SECONDS);
}
private static void myTask() {
System.out.println("Running Agains");
}
}
Running Agains
Running Agains
Running Agains
Running Agains
Running Agains
Running Agains
Running Agains
Running Agains
Running Agains
Running Agains
Running Agains
Running Agains
Running Agains
Running Agains
Running Agains
Running Agains
Running Agains
Running Agains
Running Agains
Running Agains
Running Agains
Running Agains
Running Agains
Running Agains
Running Agains
Running Agains
BUILD STOPPED (total time: 26 seconds)
Tidak ada komentar:
Posting Komentar