• JAVA可阻塞队列-ArrayBlockingQueue子类BlockingQueue的应用,使用它来实现子线程打印10次,主线程打印100次,如此反复


    /**
     * 使用BlockingQueue实现主子线程互相打印
     * @author duwenlei
     *
     */
    public class BlockingQueueTest {
    
        public static void main(String[] args) {
            final Business business = new Business();        
            new Thread(new Runnable() {
                @Override
                public void run() {
                    while(true){
                        business.sub();
                    }
                }
            }).start();
            
            while(true){
                business.main();
            }
        }
        
        static class Business{
            private BlockingQueue<Integer> queue1 = new ArrayBlockingQueue<Integer>(1);
            private BlockingQueue<Integer> queue2 = new ArrayBlockingQueue<Integer>(1);
            {
                try {
                    queue2.put(1);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
            
            public void sub(){
                try {
                    queue1.put(1);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                for (int i = 1; i < 11; i++) {
                    System.out.println("sub print "+ i);
                }
                try {
                    queue2.take();
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
            public void main(){
                try {
                    queue2.put(1);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                for (int i = 1; i < 101; i++) {
                    System.out.println("main print "+i);
                }
                try {
                    queue1.take();
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
            
        }
    }
  • 相关阅读:
    Linux 添加环境变量
    postgresql 获取修改列的值
    5月30日周一上午
    周日5月29日
    2016年5月26日
    如何使用Gson(添加到项目里去)
    linux内核分析课程总结()待完善
    5月5日离散课笔记
    4月28日的离散课(还少了一部分)
    2016年4月29日
  • 原文地址:https://www.cnblogs.com/duwenlei/p/5129337.html
Copyright © 2020-2023  润新知