<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

        明月松間照 清泉石上流


                                            ——— 兵臨城下   貓科動(dòng)物
    posts - 70, comments - 137, trackbacks - 0, articles - 23
      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理
    看一下下面這段程序
    package com.xcblcx.test;

    import java.util.ArrayList;

    public class ThreadNotifyTest {
        
    private ArrayList list = new ArrayList();

        
    /**
         * 
    @param args
         
    */

        
    public static void main(String[] args) {
            ThreadNotifyTest test 
    = new ThreadNotifyTest();
            Queue queue 
    = test.new Queue();
            
    try{
                Thread.sleep(
    1000);
                
    for(int i=0;i<5;i++{
                    queue.addStr(
    new Integer(i).toString());
                    Thread.sleep(
    1000);
                }

            }
    catch(Exception e) {
                e.printStackTrace();
            }

        }

        
        
    class ThreadTest extends Thread {
            Queue queue 
    = new Queue();
            
            
    public ThreadTest() {
                
    //this.queue = queue;
            }

            
    public void run() {
                
    while(true{
                    
    try{
                        System.out.println(
    "Thread start .");
                        String testStr 
    = this.queue.getNext();
                        System.out.println(testStr);
                    }
    catch(Exception e ){
                        e.printStackTrace();
                    }

                }

            }

        }

        
        
    class Queue {
            
    private ThreadTest threadTest = null;
            
            
    public Queue(){
                
    //this.threadTest = new ThreadTest(this);
                this.threadTest = new ThreadTest();
                
    this.threadTest.start();
            }

            
            
    public void addStr(String str) {
                
    synchronized(list) {
                    list.add(str);
                    list.notify();
                }

            }

            
            
    public String getNext() throws InterruptedException {
                
    synchronized(list) {
                    
    while(list.size() <= 0{
                        System.out.println(
    "wait start");
                        list.wait();
                        System.out.println(
    "wait end");
                    }

                    
                    
    return (String)list.remove(0);
                }

            }

        }


    }



    運(yùn)行結(jié)果為:
    java.lang.StackOverflowError
    Exception in thread "main"
    請(qǐng)問為什么?

    評(píng)論

    # re: 五一前最后一貼!發(fā)現(xiàn)一個(gè)問題,搞不明白,上來求助!  回復(fù)  更多評(píng)論   

    2008-05-01 10:28 by 隔葉黃鶯
    產(chǎn)生互相循環(huán)調(diào)用,看

    new Queue() 時(shí) new 了 ThreadTest(),而 new ThreadTest() 時(shí)又 new 了 Queue() ,繼而再 new ThreadTest(),循環(huán)不已,無窮盡也

    你需要在 new Queue() 時(shí)傳遞一個(gè)已創(chuàng)建好的 ThreadTest 實(shí)例,如這樣的構(gòu)造

    public Queue(ThreadTest threadTest){
    this.threadTest = threadTest;
    }

    在 ThreadTest 構(gòu)造方法中就不用處理 Queue 的創(chuàng)建了,或者他們的職責(zé)換一下也行。

    # re: 五一前最后一貼!發(fā)現(xiàn)一個(gè)問題,搞不明白,上來求助!  回復(fù)  更多評(píng)論   

    2008-05-02 15:33 by 兵臨城下
    明白了,謝了!
    主站蜘蛛池模板: 亚洲乱码中文字幕小综合| 在线日本高清免费不卡| 亚洲精品伊人久久久久| 亚洲五月综合缴情在线观看| 岛国av无码免费无禁网站| 亚在线观看免费视频入口| 日本一区二区在线免费观看| 亚洲无码一区二区三区| 亚洲综合久久1区2区3区| 亚洲国产精品无码专区影院| 国产国拍亚洲精品福利| 国产在线19禁免费观看| 成年女人毛片免费视频| 永久免费av无码网站韩国毛片| 一级毛片直播亚洲| 成人无遮挡毛片免费看| 成人免费的性色视频| 足恋玩丝袜脚视频免费网站| 无码国产精品一区二区免费vr| 中国极品美軳免费观看| a在线视频免费观看在线视频三区| 亚洲国产精品久久久久网站| 国产午夜亚洲不卡| 国产av无码专区亚洲国产精品| 免费人成网站在线高清| 免费A级毛片无码A∨男男| 四虎永久精品免费观看| 国产成人免费a在线视频色戒| 色吊丝最新永久免费观看网站| 毛片免费在线观看网址| 成人看的午夜免费毛片| 成人无遮挡裸免费视频在线观看 | 四虎永久在线精品免费观看地址| 91成年人免费视频| 亚洲国产精品免费观看| 国产成人无码免费看视频软件 | 亚洲熟女综合色一区二区三区| 亚洲免费福利在线视频| 亚洲av午夜福利精品一区人妖| 精品亚洲一区二区| 亚洲综合一区二区国产精品|