<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 :: 首頁(yè) :: 新隨筆 :: 聯(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)問(wèn)為什么?

    評(píng)論

    # re: 五一前最后一貼!發(fā)現(xiàn)一個(gè)問(wèn)題,搞不明白,上來(lái)求助!  回復(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)不已,無(wú)窮盡也

    你需要在 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è)問(wèn)題,搞不明白,上來(lái)求助!  回復(fù)  更多評(píng)論   

    2008-05-02 15:33 by 兵臨城下
    明白了,謝了!
    主站蜘蛛池模板: 老司机福利在线免费观看| a级亚洲片精品久久久久久久| 亚洲免费福利视频| 一级毛片免费毛片一级毛片免费 | 免费人成年激情视频在线观看| 免费无码又爽又高潮视频| 99视频在线精品免费观看6| 中文字幕av无码无卡免费| 午夜国产精品免费观看| 国产人成免费视频网站| 日本在线高清免费爱做网站| 91麻豆最新在线人成免费观看| 日韩免费一区二区三区在线| 成人免费午夜视频| 永久免费毛片手机版在线看| 免费成人av电影| 国产亚洲情侣一区二区无| 亚洲三区在线观看无套内射| 久久亚洲一区二区| 亚洲成人免费网站| 亚洲中文无码卡通动漫野外| 亚洲av午夜电影在线观看| 免费在线人人电影网| 中文字幕手机在线免费看电影| 日本中文字幕免费高清视频| 国产精品怡红院永久免费| 精品无码国产污污污免费| 亚洲国产精品激情在线观看| 亚洲精品无码久久一线| 亚洲视频在线观看免费视频| 在线亚洲午夜片AV大片| 日韩亚洲人成网站| baoyu116.永久免费视频| 88xx成人永久免费观看| 毛片a级毛片免费观看品善网| jjzz亚洲亚洲女人| 久久精品国产精品亚洲蜜月| 亚洲一区无码中文字幕乱码| 精品亚洲成A人在线观看青青| 色www永久免费| 永久免费毛片在线播放|