您的位置:首页 > 其它

一个多线程应用举例 : 优化界面交互

2010-11-05 17:38 225 查看
例 1 : 在不使用多线程时,程序只有一个主线程,程序顺序执行,在计算过程中,窗口无法相应,不能关闭窗口。

/**
* @(#)ThreadPerformed.java
*
*
* @author
* @version 1.00 2010/4/26
*/
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class ThreadPerformed extends JFrame implements ActionListener{
JButton jbOk=new JButton("确定");
double test;

public ThreadPerformed() {
this.setTitle("多线程优化界面的显示");
this.setBounds(200,300,350,200);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

jbOk.setMargin(new Insets(0,0,0,0));
this.add(jbOk,BorderLayout.NORTH);
jbOk.addActionListener(this);
}

public void actionPerformed(ActionEvent e){

//	没有利用多线程点击完确定按钮后,界面由于进行运算而卡住不能响应,当运算结束才能进行关闭操作
for (long i=0;i<100000;i++){// 循环计算并输出一个数
test=test+Math.random()*Math.PI;
System.out.println(test);
}

}

public static void main (String[] args) {
new ThreadPerformed();
}
}


例 2 : 使用多线程优化后的程序,开辟一个新的线程 专门负责计算,主程序线程控制交互,在计算过程中同样可以关闭窗口。

/**
* @(#)ThreadPerformed2.java
*
*
* @author
* @version 1.00 2010/4/26
*/
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class ThreadPerformed2 extends JFrame implements ActionListener{
JButton jbOk=new JButton("确定");
double test;

public ThreadPerformed() {
this.setTitle("多线程优化界面的显示");
this.setBounds(200,300,350,200);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

jbOk.setMargin(new Insets(0,0,0,0));
this.add(jbOk,BorderLayout.NORTH);
jbOk.addActionListener(this);
}

public void actionPerformed(ActionEvent e){
MyTread tt=new MyTread();
tt.start();

/*	没有利用多线程点击完确定按钮后,界面由于进行运算而卡住不能响应,
for (long i=0;i<100000;i++){// 循环计算并输出一个数
test=test+Math.random()*Math.PI;
System.out.println(test);
}
*/
}

public static void main (String[] args) {
new ThreadPerformed2();
}
}

//开辟一个单独的线程,负责复杂计算,点击完确定按钮后,界面立刻就响应,计算在后台进行
class MyTread extends Thread {
double test;
public void run(){
for(long i=0;i<100000;i++) { //循环计算并输出一个数

test=test+Math.random()*Math.PI;
System.out.println(test);
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐