关于使用阻塞队列的技术问题,请大家帮我看看有什么问题?

具体代码如下:

package com.service;

import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.TimeUnit;

public class Test {

    private ArrayBlockingQueue<String> blockQueue = null;
    private boolean befinesh = false;
    public Test() {



    }
    public static void main(String[] args) {
        new Test().test();
    }

    public void test() {
        this.blockQueue = new ArrayBlockingQueue<String>(10,true);
        new Thread(new Runnable() {
            @Override
            public void run() {
                try {
                    System.out.println("开始-----");
                    do {
                        System.out.println(Thread.currentThread().getId() + ":" + blockQueue.poll(10,TimeUnit.SECONDS));
                        Thread.sleep(1000L);    
                    } while (!blockQueue.isEmpty()||befinesh == false);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }).start();
        for (int i =0; i < 30; i ++) {
            try {
//              Thread.sleep(9000L);
                String str = "kjhhk_" + i;
                blockQueue.put(str);
                System.out.println(Thread.currentThread().getId() + ":往queue中放入" + str);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
        this.befinesh = true;
    }

}