文章目录
-
- 1.在 Java 中守护线程和用户线程的区别?
- 2.线程与进程的区别
- 3.什么是多线程中的上下文切换
- 4.死锁与活锁的区别,死锁与饥饿的区别?
- 5. synchronized 底层实现原理
- 6.什么是线程组,为什么在 Java 中不推荐使用?
- 7.什么是 Executors 框架?为什么使用 Executor 框架?
- 8.在 Java 中 Executor 和 Executors 的区别?
- 9.什么是原子操作?在 Java Concurrency API 中有哪些原子类(atomic classes)?
- 10. Java Concurrency API 中的 Lock 接口(Lock interface)是什么?对比 synchronized 它有什么优势?
- 11. 什么是阻塞队列?阻塞队列的实现原理是什么?如何使用阻塞队列来实现生产者-消费者模型?
- 12. 什么是 Callable 和 Future?
- 13. 什么是 FutureTask?
- 14. 什么是竞争条件?
- 15. 启动线程的方式有几种?
- 16. 为什么我们调用 start()方法时会执行 run()方法,为什么我们不能直接调用 run()方法?
- 17. 执行两次 start 方法可以吗?
- 18. 在 Java 中 CycliBarriar 和 CountdownLatch 有什么区别?
- 19. 什么是不可变对象,它对写并发应用有什么帮助?
- 20. notify()和 notifyAll()有什么区别?
- 21. 什么是可重入锁(ReentrantLock)?谈谈它的实现。
- 22. 当一个线程进入某个对象的一个 synchronized的实例方法后,其它线程是否可进入此对象的其它方法?
- 23. 乐观锁和悲观锁的理解及如何实现,有哪些实现方式?
- 24. 什么是 CAS 操作,缺点是什么?
- 25. SynchronizedMap 和 ConcurrentHashMap 有什么区别?
- 26. 写时复制容器可以用于什么应用场景?
- 27. volatile 有什么用?能否用一句话说明下volatile 的应用场景?
- 28. 为什么代码会重排序?
- 29. 在 Java 中 wait 和 sleep 方法的不同?
- 30. 一个线程运行时发生异常会怎样?
- 31. 为什么 wait, notify 和 notifyAll 这些方法不在 thread 类里面?
- 32. 什么是 ThreadLocal 变量?
- 33. Java 中 interrupted 和 isInterrupted 方法的区别?
- 34. 为什么wait和notify方法要在同步块中调用?
- 35. 为什么你应该在循环中检查等待条件?
- 36. 怎么检测一个线程是否拥有锁?
- 37. 你如何在 Java 中获取线程堆栈信息?
- 38. Java 线程池中 submit() 和 execute()方法有什么区别?
- 39. 你对线程优先级的理解是什么?
- 40. 你如何确保 main()方法所在的线程是 Java 程序最后结束的线程?
- 41. 为什么 Thread 类的 sleep()和 yield ()方法是静态的?
- 42. 现在有 T1、T2、T3 三个线程,你怎样保证 T2 在T1 执行完后执行,T3 在 T2 执行完后执行?
- 43. 用 Java 写代码来解决生产者——消费者问题。
- 44. Java 中如何停止一个线程?
- 45. JVM中哪个参数是用来控制线程的栈堆栈大小的
-
- 46. 如果同步块内的线程抛出异常,锁会释放吗?
- 47. 单例模式的双重检查实现是什么?为什么并不安全?如何在 Java 中创建线程安全的 Singleton?
- 48. 请概述线程池的创建参数,怎么样合理配置一个线程池的参数?
- 49. 请概述锁的公平和非公平,JDK 内部是如何实现的。
- 50. 请概述 AQS
- 51. 请概述 volatile
- 52. HashMap 和 HashTable 有什么区别?
- 53. Java 中的另一个线程安全的与 HashMap 极其类似的类是什么?同样是线程安全,它与HashTable 在线程同步上有什么不同?
- 54. HashMap & ConcurrentHashMap 的区别?
- 55. 为什么 ConcurrentHashMap 比 HashTable 效率要高?
- 56. 针对 ConcurrentHashMap 锁机制具体分析(JDK 1.7 VS JDK 1.8)?
- 57. ConcurrentHashMap 在 JDK 1.8 中,为什么要使用内置锁 synchronized 来代替重入锁ReentrantLock?
- 58. ConcurrentHashMap 简单介绍?
- 59. ConcurrentHashMap 的并发度是什么?
- 60. 什么是锁消除和锁粗化?
- 61. 除了 ReetrantLock, JUC 下还有哪些并发工具?
- 62. 什么是 Java 的内存模型,Java 中各个线程是怎么彼此看到对方的变量的?
|
|
1.在 Java 中守护线程和用户线程的区别?
Java 中的线程分为两种:守护线程(Daemon)和用户线程(User)。
任何线程都可以设置为守护线程和用户线