join suspend resum:
package com;
public class Test ...{
public static void main(String[] args) ...{
FirstThread first = new FirstThread();
SecondThread second = new SecondThread();
first.start();
second.start();
try...{
System.out.println("waiting for first...");
first.join();
System.out.println("It's a long wait");
System.out.println("Waking up second ...");
second.resume();
System.out.println("Waiting for second to running");
second.join();
}catch(Exception e)...{
}
System.out.println("this is the ending.");
}
}
class FirstThread extends Thread...{
public void run() ...{
try ...{
System.out.println("First Thread running:");
Thread.sleep(2000);
System.out.println("First Thread stop running:");
} catch (InterruptedException e) ...{
e.printStackTrace();
}
}
}
class SecondThread extends Thread...{
public void run() ...{
try ...{
System.out.println("Second Thread running:");
System.out.println("Second Thread suspend itself:");
suspend();
System.out.println("Second Thread runs againg and finish:");
} catch (Exception e) ...{
e.printStackTrace();
}
}
}
waiting for first...
First Thread running:
Second Thread running:
Second Thread suspend itself:
First Thread stop running:
It's a long wait
Waking up second ...
Second Thread runs againg and finish:
Waiting for second to running
this is the ending.