![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java多线程
文章平均质量分 95
98seven
这个作者很懒,什么都没留下…
展开
-
深入解析ThreadLocal
叫做线程变量,意思是中填充的变量属于当前线程,该变量对其他线程而言是隔离的,也就是说该变量是当前线程独有的变量。为变量在每个线程中都创建了一个副本,那么每个线程可以访问自己内部的副本变量。ThreadLoal 变量,线程局部变量,同一个 ThreadLocal 所包含的对象,在不同的 Thread 中有不同的副本。这里有几点需要注意: 提供了线程本地的实例。它与普通变量的区别在于,每个使用该变量的线程都会初始化一个完全独立的实例副本。ThreadLocal 变量通常被修饰。当一个线程结束时,它所使用的所有原创 2022-07-07 19:44:35 · 278 阅读 · 0 评论 -
Future模式详解
Future模式是多线程开发中常见的设计模式,它的核心思想是异步调用。对于Future模式来说,它无法立即返回你需要的数据,但是它会返回一个契约,将来你可以凭借这个契约去获取你需要的信息。这是传统的同步方法,调用一段耗时的程序。当客户端发出call请求,这个请求需要很长的一段时间才会返回,客户端一直在等待直到数据返回随后再进行其他任务的处理。而使用Future模式:从Data_Future对象可以看到虽然本身任然需要一段很长时间处理程序。但是服务程序并不等数据处理完成便立即返回客户端一个伪造的数据(如:原创 2022-07-07 18:25:46 · 1991 阅读 · 0 评论 -
Synchronized详解
1 Synchronized的作用synchronized是一个Java关键字,是jvm层级的,提供了一种排他机制,在同一时间点只能有一个线程执行某些操作,实现一个简单的策略来防止线程干扰和内存一致性错误。2 Synchronized的使用[default|public|private|protected] synchronized [static] type method()当synchronized作用在实例方法时,相当于对当前实例加锁 ,进入同步代码前要获取到该实例的锁;public原创 2022-05-09 21:21:39 · 548 阅读 · 0 评论 -
多线程并发可能遇到的问题及Runable和Thread之间的关系
一、多线程并发可能遇到的问题多线程并发执行可能会导致一些问题:安全性问题:在单线程系统上正常运行的代码,在多线程环境中可能会出现意料之外的结果。活跃性问题:不正确的加锁、解锁方式可能会导致死锁或者活锁问题。性能问题:多线程并发即多个线程切换运行,线程切换会有一定的消耗并且不正确的加锁。1. 安全性问题多线程的三大特性:原子性、可见性、有序性。如果不满足这三大特性,就可能产生线程安全问题。案例:需求现有100张火车票,两个窗口同时售卖火车票,请用多线程模拟抢票效果。class Thread原创 2022-04-22 15:08:46 · 2950 阅读 · 0 评论