多线程常见面试题

  • sleep , join() /yiled() 的区别
    sleep 让线程睡眠指定时间, 会释放cpu时间片
    join, wait/notify, 让线程的执行结果可见
    yiled 让出时间片. -> 触发重新调度.
    sleep(0) -> 触发一次切换
  • Java中能够创建volatile数组吗?
    可以创建, Volatile 对于引用可见,对于数组中的元素不具备可见性。
    // volatile 缓存行的填充. ->性能问题
  • Java中的++操作是线程安全的吗?
    不是线程安全的, 原子性、有序性、可见性。
    ++操作无法满足原子性
  • 线程什么时候会抛出InterruptedException()
    t.interrupt() 去中断一个处于阻塞状态下的线程时(join/sleep/wait)
  • Java 中Runnable和Callable有什么区别
  • 有T1/T2/T3三个线程,如何确保他们的执行顺序
    join
  • Java内存模型是什么?
    JMM是一个抽象的内存模型。
    它定义了共享内存中多线程程序读写操作的行为规范:在虚拟机中把共享变量存储到内存以及从内
    存中取出共享变量的底层实现细节。通过这些规则来规范对内存的读写操作从而保证指令的正确
    性,它解决了CPU多级缓存、处理器优化、指令重排序导致的内存访问问题,保证了并发场景下的
    可见性。
  • 什么是线程安全
    原子性、有序性、可见性(硬件层面(CPU高速缓存、指令重排序、JMM))
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值