zoukankan      html  css  js  c++  java
  • 经典并发面试题

    题目:实现一个容器,提供俩个方法,add和size,写俩个线程,线程1添加10个元素到容器中,线程2实现监控元素的个数,当个数到5时,线程2给出提示并结束

    实现案例:

    /**
     * @program: mystudy_basis
     * @description: 实现一个容器,提供俩个方法,add和size,写俩个线程,
     * 线程1添加10个元素到容器中,线程2实现监控元素的个数,当个数到5时,线程2给出提示并结束
     **/
    public class ContainerTest {
        /**初始化容器*/
        volatile List<Object> list = new ArrayList<>();
    
        public void add(Object o){
            list.add(o);
        }
    
        public int size(){
           return list.size();
        }
    
        public static void main(String args[]){
            CountDownLatch countDownLatch = new CountDownLatch(1);
            ContainerTest containerTest = new ContainerTest();
            new Thread(()->{
                System.out.println("t2启动-----");
                if(containerTest.size()!=5){
                    try {
                        countDownLatch.await();
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
                System.out.println("t2结束-----");
            },"t2").start();
    
            new Thread(()->{
                System.out.println("t1启动---");
                for(int i=0;i<10;i++){
                    containerTest.add(new Object());
                    System.out.println("add"+i);
                    if(containerTest.size()==5){
                        countDownLatch.countDown();
                    }
                    try {
                        TimeUnit.SECONDS.sleep(1);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
            },"t1").start();
        }
    }

    当CountDownLatch的值为0的时候,t2开始执行

    当你发现自己的才华撑不起野心时,就请安静下来学习吧
  • 相关阅读:
    各种数据库默认端口总结
    Entity Framework学习
    Entity Framework学习
    .Net MVC API初试
    MongoDB Shell
    MongoDB安装及简单实验
    Android Studio记录
    Android使用Fragment程序崩溃
    git操作笔记
    centos防火墙设置
  • 原文地址:https://www.cnblogs.com/smallVampire/p/12119491.html
Copyright © 2011-2022 走看看