GUI的线程安全性问题
在jdk5.0中 sun为了保证从事件分派线程之外的一个线程上创建GUI代码,推荐使用SwingUtilties类定义的两个方法:invokeAndWait()或invokeLater(),比如:
import java.awt.*;
import javax.swing.*;
public class JLabelDemo extends JApplet{
public void init()
try{
SwingUtilites.invokeAndWait(
new Runnable (){
public void run(){
makeGUI();
}
}
);
} catch (Exception e){
System.out.println( "Can 't create " + e);
}
}
private void makeGUI(){
ImageIcon ii = new ImageIcon ( "xxx.gif ");
JLabel jl = new JLabel( "France ",ii, JLabel.CENTER);
add(jl);
}
}
_____________________________________________________________
请问能否写成 :
Synchronized private void makeGUI(){
同时不用 nvokeAndWait() ???/
------解决方案--------------------invokeAndWait()或invokeLater()是分派线程和线程同步不是一个概念~
请问能否写成 :
Synchronized private void makeGUI(){
同时不用 nvokeAndWait() ???/
你自己去实现一个线程去完成这个功能也可以,但是你自己要达到这两个提供的方法的功能不觉得麻烦吗?还有你加Synchronized 干社么?难到有多个对象会同时访问这个方法吗
既有之则用之,何必重复发明轮子呢