| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 703 人关注过本帖
标题:wait()和notify()语句的应用 求大神指导
取消只看楼主 加入收藏
黑色蛋挞
Rank: 2
来 自:北京
等 级:论坛游民
帖 子:6
专家分:15
注 册:2012-11-9
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:2 
wait()和notify()语句的应用 求大神指导
这是我自己看书学习做的练习程序,本来的目的是想实现进度条的从1到100再从100到1的无限循环
但是在wait()和notify()语句这里卡住了 貌似synchronized这里也卡住了,
求大神指导
分有点少,望谅解


package 第二十二章;

import java.awt.BorderLayout;
import java.awt.Container;

import javax.swing.JFrame;
import javax.swing.JProgressBar;
import javax.swing.WindowConstants;

public class 没用8 extends JFrame{
    int count = 100;
    static Thread A = new Thread();
    static Thread B = new Thread();
    Container c = getContentPane();
    JProgressBar p = new JProgressBar();
   
    public static void fangfa(JFrame frame){
        frame.setTitle("wait()语句应用");
        frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        frame.setVisible(true);
        frame.setBounds(200, 200, 300, 70);
        
    }
    public  没用8(){
        c.add(p,BorderLayout.CENTER);
        p.setStringPainted(true);
        A = new Thread(new Runnable(){
            public void run() {
                while(count <= 100){
                    p.setValue(--count);
                    try{
                        A.sleep(100);
                    }
                    catch(Exception e){
                        e.printStackTrace();
                    }
                }
            }
        });c.add(p,BorderLayout.CENTER);
        p.setStringPainted(true);
        B = new Thread(new Runnable(){
            public void run() {
                while(count <= 100){
                    p.setValue(++count);
                    try{
                        B.sleep(100);
                    }
                    catch(Exception e){
                        e.printStackTrace();
                    }
                }
            }
        });
        synchronized(""){
            while(true){
            try {
                A.wait();
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            try {
                B.wait();
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            if(count == 100){
                B.notify();
            }
            if(count == 0){
                A.notify();
            }
            }
        }
    }
   
    public static void main(String[] args){
        fangfa(new 没用8());
        A.start();
        B.start();

    }
}
搜索更多相关主题的帖子: static package public import 
2013-04-27 19:31
黑色蛋挞
Rank: 2
来 自:北京
等 级:论坛游民
帖 子:6
专家分:15
注 册:2012-11-9
收藏
得分:0 
回复 3楼 ren829
因为是自己看书学习的,想用线程的这两个方法来做,但是这两个方法不怎么会用- -!
2013-04-28 07:57
黑色蛋挞
Rank: 2
来 自:北京
等 级:论坛游民
帖 子:6
专家分:15
注 册:2012-11-9
收藏
得分:0 
回复 5楼 ren829
嗯 根据您说的 把run方法不要放在构造函数里 我自己把2个线程设成了2个方法  wait()方法和notify()方法也改了改
程序貌似就没有问题了 谢谢
2013-04-28 10:28
快速回复:wait()和notify()语句的应用 求大神指导
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017745 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved