网管 发布的文章

你在工作中用到过ThreadLocal吗?ThreadLocal在用户信息上下文的存储中是非常有用的。在我们的系统应用中,遵循MVC架构,当用户登录后,每次访问接口都会在请求头中携带一个token。在控制层,我们可以根据这个token解析出用户的基本信息。然而,如果在服务层和持久层中也需要使用用户信息(例如进行RPC调用或更新用户数据等),我们应该如何处理呢?

- 阅读剩余部分 -

ThreadLocal是什么?ThreadLocal,即线程本地变量。如果你创建了一个ThreadLocal变量,那么每个访问该变量的线程都会拥有该变量的一个本地拷贝。当多个线程操作该变量时,实际上是在操作各自本地内存中的变量,从而实现了线程间的隔离,避免了线程安全问题的发生。

- 阅读剩余部分 -

守护线程了解吗?在Java中,线程可以分为两类:守护线程(daemon线程)和用户线程(user线程)。在JVM启动时,会调用main函数,主线程即为一个用户线程。除此之外,JVM内部还会同时启动许多守护线程,例如垃圾回收线程。

- 阅读剩余部分 -

线程有几种状态?在Java中,线程共有六种状态:状态说明NEW初始状态:线程被创建,但还没有调用start()方法RUNNABLE运行状态:Java线程将操作系统中的就绪和运行两种状态笼统的称作“运行”BLOCKED阻塞状态:表示线程阻塞于锁WAITING等待状态:表示线程进入等待状态,进入该状态表示当前线程需要等待其他线程做出一些特定动作(通知或中断)TIME_WAITING超时等待状态:该状态不同于 WAITIND,它是可以在指定的时间自行返回的TERMINATED终止状态:表示当前线程已经执行完毕

- 阅读剩余部分 -