Java 面试之线程与锁

2023年5月24日13:08:54

进程、线程

  进程是操作系统分配资源的最小单元,线程是操作系统调度的最小单元。一个进程一般包括多个线程,这些线程共享本进程的内存和资源。

线程的状态

Java 面试之线程与锁

实现线程的几种方式

  • 继承Thread类创建线程
  • 实现Runnable接口创建线程
  • 实现Callable接口创建新线程(可用Future返回结果)

ThreadLocal

  设计理念是为了减少同一个线程内多个函数或者组件之间一些公共变量的传递的复杂度。作用是提供线程内部的局部变量,这些变量在多线程环境下访问(get/set)时能保证与其它线程里的变量相对独立。打个比方,多人(多个线程)使用自己的交通卡(线程私有变量)乘公交转地铁(两个函数)。
  注意:使用 ThreadLocal 时要保证能够管理它的创建、销毁,否则会出问题。因为 ThreadLocal 是和 Thread 绑定的,如果 Thread 是从 ThreadPool 中拿出来的,那么意味着 Thread 可能会被复用。如果被复用,你就一定得保证这个 Thread 上一次结束的时候,其关联的 ThreadLocal 被清空掉,否则就会串到下一次使用。

  • 作者:博学de叫兽
  • 原文链接:https://zhangchong.blog.csdn.net/article/details/79772952
    更新时间:2023年5月24日13:08:54 ,共 463 字。