129 lines
4.9 KiB
HTML
129 lines
4.9 KiB
HTML
|
<?xml version="1.0" encoding="UTF-8"?>
|
||
|
<!DOCTYPE html
|
||
|
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||
|
<html lang="en-us" xml:lang="en-us">
|
||
|
<head>
|
||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||
|
<meta name="security" content="public" />
|
||
|
<meta name="Robots" content="index,follow" />
|
||
|
<meta http-equiv="PICS-Label" content='(PICS-1.1 "http://www.icra.org/ratingsv02.html" l gen true r (cz 1 lz 1 nz 1 oz 1 vz 1) "http://www.rsac.org/ratingsv01.html" l gen true r (n 0 s 0 v 0 l 0) "http://www.classify.org/safesurf/" l gen true r (SS~~000 1))' />
|
||
|
<meta name="DC.Type" content="reference" />
|
||
|
<meta name="DC.Title" content="Example: Cancel a thread using Java" />
|
||
|
<meta name="abstract" content="This example shows a Java program canceling a long-running thread." />
|
||
|
<meta name="description" content="This example shows a Java program canceling a long-running thread." />
|
||
|
<meta name="DC.Relation" scheme="URI" content="rzahwcanco.htm" />
|
||
|
<meta name="copyright" content="(C) Copyright IBM Corporation 1998, 2006" />
|
||
|
<meta name="DC.Rights.Owner" content="(C) Copyright IBM Corporation 1998, 2006" />
|
||
|
<meta name="DC.Format" content="XHTML" />
|
||
|
<meta name="DC.Identifier" content="rzahwex8-ex8rx" />
|
||
|
<meta name="DC.Language" content="en-us" />
|
||
|
<!-- All rights reserved. Licensed Materials Property of IBM -->
|
||
|
<!-- US Government Users Restricted Rights -->
|
||
|
<!-- Use, duplication or disclosure restricted by -->
|
||
|
<!-- GSA ADP Schedule Contract with IBM Corp. -->
|
||
|
<link rel="stylesheet" type="text/css" href="./ibmdita.css" />
|
||
|
<link rel="stylesheet" type="text/css" href="./ic.css" />
|
||
|
<title>Example: Cancel a thread using Java</title>
|
||
|
</head>
|
||
|
<body id="rzahwex8-ex8rx"><a name="rzahwex8-ex8rx"><!-- --></a>
|
||
|
<!-- Java sync-link --><script language="Javascript" src="../rzahg/synch.js" type="text/javascript"></script>
|
||
|
<h1 class="topictitle1">Example: Cancel a thread using Java</h1>
|
||
|
<div><p>This example shows a Java™ program canceling a long-running thread.</p>
|
||
|
<div class="section"><div class="note"><span class="notetitle">Note:</span> By using the code examples, you agree to the terms of the <a href="codedisclaimer.htm">Code license and disclaimer information</a>.</div>
|
||
|
</div>
|
||
|
<div class="example"> <pre>/*
|
||
|
FileName: ATEST13.java
|
||
|
|
||
|
The output of this example is as follows:
|
||
|
Entered the testcase
|
||
|
Create a thread
|
||
|
Start the thread
|
||
|
Wait a bit until we 'realize' the thread needs to be canceled
|
||
|
Thread: Entered
|
||
|
Thread: Looping or long running request
|
||
|
Thread: Looping or long running request
|
||
|
Thread: Looping or long running request
|
||
|
Wait for the thread to complete
|
||
|
Thread status indicates it was canceled
|
||
|
Testcase completed
|
||
|
*/
|
||
|
import java.lang.*;
|
||
|
|
||
|
|
||
|
public class ATEST13 {
|
||
|
|
||
|
static class theThread extends Thread {
|
||
|
public final static int THREADPASS = 0;
|
||
|
public final static int THREADFAIL = 1;
|
||
|
public final static int THREADCANCELED = 2;
|
||
|
int _status;
|
||
|
|
||
|
public int status() {
|
||
|
return _status;
|
||
|
}
|
||
|
public theThread() {
|
||
|
_status = THREADFAIL;
|
||
|
}
|
||
|
public void run() {
|
||
|
System.out.print("Thread: Entered\n");
|
||
|
try {
|
||
|
while (true) {
|
||
|
System.out.print("Thread: Looping or long running request\n");
|
||
|
try {
|
||
|
Thread.sleep(1000);
|
||
|
}
|
||
|
catch (InterruptedException e) {
|
||
|
System.out.print("Thread: sleep interrupted\n");
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
catch (ThreadDeath d) {
|
||
|
_status = THREADCANCELED;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public static void main(String argv[]) {
|
||
|
System.out.print("Entered the testcase\n");
|
||
|
|
||
|
System.out.print("Create a thread\n");
|
||
|
theThread t = new theThread();
|
||
|
|
||
|
System.out.print("Start the thread\n");
|
||
|
t.start();
|
||
|
|
||
|
System.out.print("Wait a bit until we 'realize' the thread needs to be canceled\n");
|
||
|
try {
|
||
|
Thread.sleep(3000);
|
||
|
}
|
||
|
catch (InterruptedException e) {
|
||
|
System.out.print("sleep interrupted\n");
|
||
|
}
|
||
|
t.stop();
|
||
|
|
||
|
System.out.print("Wait for the thread to complete\n");
|
||
|
try {
|
||
|
t.join();
|
||
|
}
|
||
|
catch (InterruptedException e) {
|
||
|
System.out.print("Join interrupted\n");
|
||
|
}
|
||
|
System.out.print("Thread status indicates it was canceled\n");
|
||
|
if (t.status() != theThread.THREADCANCELED) {
|
||
|
System.out.print("Unexpected thread status\n");
|
||
|
}
|
||
|
|
||
|
System.out.print("Testcase completed\n");
|
||
|
System.exit(0);
|
||
|
}
|
||
|
|
||
|
}</pre>
|
||
|
</div>
|
||
|
</div>
|
||
|
<div>
|
||
|
<div class="familylinks">
|
||
|
<div class="parentlink"><strong>Parent topic:</strong> <a href="rzahwcanco.htm" title="The ability to end a thread externally allows you to cancel threads that run long requests before they are completed on their own. The methods available for canceling threads vary according to the threads API set that is used.">Cancel a thread</a></div>
|
||
|
</div>
|
||
|
</div>
|
||
|
</body>
|
||
|
</html>
|