辐射4 混凝土 购买:example of join another thread
来源:百度文库 编辑:九乡新闻网 时间:2024/04/28 13:58:35
public class SimpleThreads {
//Display a message, preceded by the name of the current thread
static void threadMessage(String message) {
String threadName = Thread.currentThread().getName();
System.out.format("%tT %s: %s%n", Calendar.getInstance(), threadName, message);
}
private static class MessageLoop implements Runnable {
public void run() {
String importantInfo[] = {
"Mares eat oats",
"Does eat oats",
"Little lambs eat ivy",
"A kid will eat ivy too"
};
try {
for (int i = 0; i < importantInfo.length; i++) {
//Pause for 4 seconds
Thread.sleep(4000);
//Print a message
threadMessage(importantInfo[i]);
}
} catch (InterruptedException e) {
threadMessage("I wasn't done!");
}
}
}
public static void main(String args[]) throws InterruptedException {
//Delay, in milliseconds before we interrupt MessageLoop
//thread (default one hour).
// long patience = 1000 * 60 * 60;
long patience = 1000 * 10;
//If command line argument present, gives patience in seconds.
if (args.length > 0) {
try {
patience = Long.parseLong(args[0]) * 1000;
} catch (NumberFormatException e) {
System.err.println("Argument must be an integer.");
System.exit(1);
}
}
threadMessage("Starting MessageLoop thread");
long startTime = System.currentTimeMillis();
Thread t = new Thread(new MessageLoop());
t.start();
threadMessage("Waiting for MessageLoop thread to finish");
//loop until MessageLoop thread exits
while (t.isAlive()) {
threadMessage("Still waiting...");
//Wait maximum of 2 second for MessageLoop thread to
//finish.
t.join(2000);
if (((System.currentTimeMillis() - startTime) > patience) &&
t.isAlive()) {
threadMessage("Tired of waiting!");
t.interrupt();
//Shouldn't be long now -- wait indefinitely
t.join();
}
}
threadMessage("Finally!");
}
}
when call t.join, the current main thread will be pause to wait thread of t to completed it's work util it to die.
15:47:16 main: Starting MessageLoop thread
15:47:16 main: Waiting for MessageLoop thread to finish
15:47:16 main: Still waiting...
15:47:18 main: Still waiting...
15:47:20 Thread-0: Mares eat oats
15:47:20 main: Still waiting...
15:47:22 main: Still waiting...
15:47:24 Thread-0: Does eat oats
15:47:24 main: Still waiting...
15:47:26 main: Tired of waiting!
15:47:26 Thread-0: I wasn't done!
15:47:26 main: Finally!
Process finished with exit code 0
//Display a message, preceded by the name of the current thread
static void threadMessage(String message) {
String threadName = Thread.currentThread().getName();
System.out.format("%tT %s: %s%n", Calendar.getInstance(), threadName, message);
}
private static class MessageLoop implements Runnable {
public void run() {
String importantInfo[] = {
"Mares eat oats",
"Does eat oats",
"Little lambs eat ivy",
"A kid will eat ivy too"
};
try {
for (int i = 0; i < importantInfo.length; i++) {
//Pause for 4 seconds
Thread.sleep(4000);
//Print a message
threadMessage(importantInfo[i]);
}
} catch (InterruptedException e) {
threadMessage("I wasn't done!");
}
}
}
public static void main(String args[]) throws InterruptedException {
//Delay, in milliseconds before we interrupt MessageLoop
//thread (default one hour).
// long patience = 1000 * 60 * 60;
long patience = 1000 * 10;
//If command line argument present, gives patience in seconds.
if (args.length > 0) {
try {
patience = Long.parseLong(args[0]) * 1000;
} catch (NumberFormatException e) {
System.err.println("Argument must be an integer.");
System.exit(1);
}
}
threadMessage("Starting MessageLoop thread");
long startTime = System.currentTimeMillis();
Thread t = new Thread(new MessageLoop());
t.start();
threadMessage("Waiting for MessageLoop thread to finish");
//loop until MessageLoop thread exits
while (t.isAlive()) {
threadMessage("Still waiting...");
//Wait maximum of 2 second for MessageLoop thread to
//finish.
t.join(2000);
if (((System.currentTimeMillis() - startTime) > patience) &&
t.isAlive()) {
threadMessage("Tired of waiting!");
t.interrupt();
//Shouldn't be long now -- wait indefinitely
t.join();
}
}
threadMessage("Finally!");
}
}
when call t.join, the current main thread will be pause to wait thread of t to completed it's work util it to die.
15:47:16 main: Starting MessageLoop thread
15:47:16 main: Waiting for MessageLoop thread to finish
15:47:16 main: Still waiting...
15:47:18 main: Still waiting...
15:47:20 Thread-0: Mares eat oats
15:47:20 main: Still waiting...
15:47:22 main: Still waiting...
15:47:24 Thread-0: Does eat oats
15:47:24 main: Still waiting...
15:47:26 main: Tired of waiting!
15:47:26 Thread-0: I wasn't done!
15:47:26 main: Finally!
Process finished with exit code 0
example of join another thread
Kashgar, another face of China
Another patient suspected of E.coli hospitali...
thread
Thread
Example of a Project Proposal: Tips for Getting Your Proposal Noticed
join me
Join Me In Death
理解 Thread.Sleep 函数
Thread.currentThread().getContextClassLoader().getResourceAsStream
Another harmless G20 meeting
another letter to Tian
请教JOIN ,LEFT JOIN ,ALL JOIN 等的区别和联系 - MS-SQL Server / 基础类
A nice multiline ToolTipCtrl example. - CodeProject
4 BI Worst Practices | Dashboards By Example
for example和such as 区别
China offers example for developing nations
[other,others,another的用法]
Another European Crisis Looming? - Newsweek
FIFA: Another name for corruption
other,others,another的用法!
other,others,another的用法
join as you go afghans 钩毛毯-
take part in与join的区别