2. 使用stop方法强行终止线程(这个方法不推荐使用,因为stop和suspend、resume一样,也可能发生不可预料的结果)。
3. 使用interrupt方法中断线程。
1. 使用退出标志终止线程
当run方法执行完后,线程就会退出。但有时run方法是永远不会结束的。如在服务端程序中使用线程进行监听客户端请求,或是其他的需要循环处理的任务。在这种情况下,一般是将这些任务放在一个循环中,如while循环。如果想让循环永远运行下去,可以使用while(true){……}来处理。但要想使while循环在某一特定条件下退出,最直接的方法就是设一个boolean类型的标志,并通过设置这个标志为true或false来控制while循环是否退出。下面给出了一个利用退出标志终止线程的例子。
你都会编这么多的代码了,怎么就剩下这两步不会?import java.awt.Button
import java.awt.Color
import java.awt.FlowLayout
import java.awt.Frame
import java.awt.Label
import java.awt.TextField
import java.awt.event.ActionEvent
import java.awt.event.ActionListener
import java.awt.event.WindowAdapter
import java.awt.event.WindowEvent
public class Round extends Frame implements ActionListener {
TextField t1, t2, t3, t4
Button b1
Button btnExit
public Round() {
setLayout(new FlowLayout())
t1 = new TextField(20)
t1.setBackground(Color.orange)
t2 = new TextField(20)
t2.setBackground(Color.orange)
t3 = new TextField(20)
t3.setBackground(Color.orange)
t4 = new TextField(20)
t4.setBackground(Color.orange)
b1 = new Button("计算")
btnExit = new Button("退出")
add(new Label("输入圆的半径:"))
add(t1)
add(new Label("得出圆的直径:"))
add(t2)
add(new Label("得出圆的面积:"))
add(t3)
add(new Label("得出圆的周长:"))
add(t4)
add(b1)
add(btnExit)
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0)
}
})
b1.addActionListener(this)
btnExit.addActionListener(this)
setVisible(true)
setBounds(200, 200, 200, 300)
validate()
}
public void actionPerformed(ActionEvent e) {
if(e.getSource()==b1){
double temp, r, a, c
temp = Float.parseFloat(t1.getText())
r = 2 * temp
a = 3.14 * temp * temp
c = 2 * 3.14 * temp
t2.setText(String.valueOf(r))
t3.setText(String.valueOf(a))
t4.setText(String.valueOf(c))
}
if(e.getSource()==btnExit){
System.exit(0)
}
}
public static void main(String args[]) {
new Round()
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)