02 面试题系列 | 并发集合相关

2019-03-16 10-周三不加班

1、Java中的同步集合与并发集合有什么区别?

同步集合可以简单地理解为通过 synchronized 来实现同步的集合。不管是同步集合还是并发集合他们都支持线程安全,他们之间主要的区别体现在性能和可扩展性,二者都支持线程安全,区别主要体现在实现线程安全的方式,因此在性能和可扩展性上有明显不同!

  • 同步集合是把整个集合锁起来,所以性能较差;
  • 并发集合是通过锁剥离、COW等技术使得多个线程可以同时访问集合,所以性能很好。

2、Java中invokeAndWait 和 invokeLater有什么区别?

invokeAndWait:后面的程序必须等这个线程(参数中的线程)的东西执行完才能执行;
invokeLater:后面的程序和这个参数的线程对象可以并行,异步地执行;
invokeLater 一般用于在线程里修改 Swing 组件的外观,因为 Swing 组件是非同步的,所以不能在线程中直接修改,会不同步,得不到期望的效果,所以要把修改外观的代码放在一个单独的线程中,交给 invokeLater,这样后面的程序和这个参数的线程对象可以并行、异步地执行。

3、什么是FutureTask?

FutureTask 可以像 Runnable 一样,封装异步任务,然后提交给 Thread 或线程池执行,然后获取任务执行结果。原因在于 FutureTask 实现了 RunnableFuture 接口,RunnableFuture 是 Runnable 和 Callable 的结合,它继承自 Runnable 和 Callable。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值