• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
lizhao2016
博客园    首页    新随笔    联系   管理    订阅  订阅
从面试官的角度看Java基础

      如题,今天刚刚面了几个开发,有工作5年的,有工作7年的。原以为Java基础会很扎实,结果大失所望,基础的线程知识都不甚了解。其实,对于中高级开发,java基础要求也是有的,起码得答个百分之九十。下面是一串关于多线程的面试问题,仅供参考:

      1、java创建多线程的方式?三种方式

      2、在项目中如何使用多线程?记住,不能回答上面的三种方式,会让人知道在项目中没有真正使用多线程。应该回答使用线程池。

      3、线程池都有哪几种创建方式?项目中使用哪种?

有四种,应该清楚的回答出来。但是,要注意,项目中哪种都不使用。

a、newFixedThreadPool(int nThreads):创建一个固定长度的线程池,每当提交一个任务就创建一个线程,直到达到线程池的最大数量,这时线程规模将不再变化,当线程发生未预期的错误而结束时,线程池会补充一个新的线程。

b、newCachedThreadPool():创建一个可缓存的线程池,如果线程池的规模超过了处理需求,将自动回收空闲线程,而当需求增加时,则可以自动添加新线程,线程池的规模不存在任何限制。

c、newSingleThreadExecutor():这是一个单线程的 Executor,它创建单个工作线程来执行任务,如果这个线程异常结束,会创建一个新的来替代它;它的特点是能确保依照任务在队列中的顺序来串行执行。

d、newScheduledThreadPool(int corePoolSize):创建一个固定长度的线程池,而且以延迟或定时的方式来执行任务。

       4、线程池的状态有哪几种?

       5、线程池的核心线程数目如何确定?为什么?

       上面这些问题只是冰山一角,如果对java基础一知半解,很容易掉入面试的陷阱中。当然,通过这种方式筛选面试者能不能胜任工作也很方便。

posted on 2021-06-01 21:01  lizhao2016  阅读(48)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3