VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 767|回复: 4

GUI的线程安全性问题

[复制链接]

3

主题

10

帖子

6.00

积分

新手上路

Rank: 1

积分
6.00
发表于 2020-1-3 21:30:01 | 显示全部楼层 |阅读模式
在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()       ???/
回复

使用道具 举报

3

主题

10

帖子

6.00

积分

新手上路

Rank: 1

积分
6.00
 楼主| 发表于 2020-1-3 21:30:01 | 显示全部楼层
请问能否写成 :
  Synchronized  private void makeGUI(){
  同时不用 invokeAndWait()       ???/
回复

使用道具 举报

3

主题

10

帖子

6.00

积分

新手上路

Rank: 1

积分
6.00
 楼主| 发表于 2020-1-11 10:45:01 | 显示全部楼层
自己顶下
回复

使用道具 举报

3

主题

10

帖子

6.00

积分

新手上路

Rank: 1

积分
6.00
 楼主| 发表于 2020-7-21 21:00:02 | 显示全部楼层
为什么没人回答呢 大家都不用invokewait()吗?
回复

使用道具 举报

1

主题

51

帖子

32.00

积分

新手上路

Rank: 1

积分
32.00
发表于 2020-7-21 22:30:01 | 显示全部楼层
invokeAndWait()或invokeLater()是分派线程和线程同步不是一个概念~
请问能否写成 :
  Synchronized  private void makeGUI(){
  同时不用 nvokeAndWait()       ???/
你自己去实现一个线程去完成这个功能也可以,但是你自己要达到这两个提供的方法的功能不觉得麻烦吗?还有你加Synchronized  干社么?难到有多个对象会同时访问这个方法吗
既有之则用之,何必重复发明轮子呢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表