![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
javaee
文章平均质量分 74
zbillows
这个作者很懒,什么都没留下…
展开
-
总结锁策略, cas 和 synchronized 优化过程
乐观锁在加锁之前,预估当前出现锁冲突的概率不大,因此在进行加锁的时候就不会做太多工作加锁过程做的事情比较少,加锁的速度可能就更快,但是也更容易引入一些其他问题悲观锁在家所之前,预估当前锁冲突出现的概率比较大,加锁的时候,会做很多工作做的事情多,加锁的速度可能更慢,整个过程不容易出现其它问题加锁之前对未发生的事进行预估。原创 2024-03-03 23:45:27 · 510 阅读 · 0 评论 -
总结 HashTable, HashMap, ConcurrentHashMap 之间的区别
HashMap 不行,线程不安全更靠谱的,Hashtable,在关键方法上加了synchronized后来标准库又引入了一个更好的解决方案;原创 2024-03-03 11:42:08 · 217 阅读 · 0 评论 -
关于synchronized介绍
1. 乐观锁/悲观锁自适应,开始时是乐观锁,如果锁冲突频繁,就转换为悲观锁2.轻量级/重量级锁自适应 开始是轻量级锁实现,如果锁被持有的时间较长,就转换成重量级锁3.自旋/挂起等待锁自适应4.不是读写锁5.非公平锁6,可重入锁。原创 2024-03-02 23:04:08 · 558 阅读 · 0 评论 -
线程池总结
把要使用的线程提前创建好,用完了也不要释放而是以备下次使用,就节省了创建/销毁线程的开销在这个使用的过程中,并没有真的 频繁创建销毁,而是从线程池里,去线程使用,用完了还给线程池线程池参数介绍核心线程数(一个线程池里,最少得有多少个线程)最大线程数(一个线程池里,最多最多能有多少个线程)保持存活时间时间单位和定时器一样,线程池中可以持有很多的任务使用Runnable 来作为描述任务的主体也可以设置PriorityBlockingQueue 带有优先级。原创 2024-03-02 11:05:14 · 829 阅读 · 0 评论 -
自己实现一个阻塞队列
1.阻塞队列是一种特殊的队列,带有阻塞性质,也遵循"先进先出",a.针对一个已经满了的队列进行入队列,此时入队列操作就会阻塞,一直阻塞到队列不满之后b.针对一个已经空了的队列进行出队列,此时出队列操作就会阻塞,一直阻塞到队列不空之后2.阻塞队列是线程安全的。原创 2024-03-01 14:24:54 · 376 阅读 · 0 评论 -
实现一个线程安全的单例模式
上述代码中,由于t1线程执行完1 3 之后 调度走,此时instance 指向的是一个非null的 但是未初始化的对象,此时t2线程判定instance == null 不成立 就会直接return 如果t2继续使用instance里面的属性和方法,就会出现问题(此时这里的属性 都是未初始化的"全0 "值) 就会引起代码逻辑上出现问题。某个类,在一个类,只应该创建出一个实例,使用单例模式,就可以对咱们的代码进行一个更严格的校验和检查。实质是在该模式中不着急初始化出实例,在类外需要的时候,在进行初始化。原创 2024-02-29 17:42:00 · 626 阅读 · 0 评论 -
线程安全问题的原因和解决方案
2.多个线程同时修改同一个变量如count++这个操作,如果两个线程同时执行,就有可能出现两个线程同时读取count的值,然后同时修改,再同时存入,这就相当于count只自增了一次。3.原子性n++,其实是由三步操作组成的:1. 从内存把数据读到CPU2. 进⾏数据更新3. 把数据写回到CPU不保证原⼦性会给多线程带来什么问题?如果⼀个线程正在对⼀个变量操作,中途其他线程插⼊进来了,如果这个操作被打断了,结果就可能是错误的。原创 2024-02-20 22:27:28 · 770 阅读 · 0 评论 -
Java 线程的几种状态
java中的线程的生命周期可分为6种状态。原创 2024-02-19 08:30:00 · 345 阅读 · 0 评论 -
Java Thread 类的基本用法
匿名内部类写法。原创 2024-02-19 08:00:00 · 381 阅读 · 0 评论 -
进程和线程的区别
4.进程和进程之间,不会互相影响,如果同一个进程中的某个线程抛出异常,是可能影响到其他线程,会把整个进程中的所有线程都会终止。6.线程也不是越多越好,要能够合适,如果线程太多了,调度开销可能非常明显。进程是系统资源调度的基本单位,线程是系统调度执行的基本单位。3.每个线程也有自己的资源,进程中的线程共享这一份资源。5.同一个进程的线程之间,可能会互相干扰引发线程安全。虽然多进程也能实现并发编程,但是线程⽐进程更轻量.• 销毁线程⽐销毁进程更快.• 调度线程⽐调度进程更快.1.进程是包含线程的。原创 2024-02-09 17:25:53 · 219 阅读 · 0 评论