首页
AI Coding
数据标注
NEW
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
松儿松
掘友等级
开发岗
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
2
文章 2
沸点 0
赞
2
返回
|
搜索文章
最新
热门
JVM(第一部分JVM参数及四大引用)
基本结构与之前类似,只是Java8取消了之前的“永久代”,取而代之的是“元空间”——Metaspace,两者本质是一样的。“永久代”使用的是JVM的堆内存,而“元空间”是直接使用的本机物理内存。 维护一个计数器,如果有对该对象的引用,计数器+1,反之-1。无法解决循环引用的问题…
阻塞队列的应用——线程池
概念:线程池主要是控制运行线程的数量,将待处理任务放到等待队列,然后创建线程执行这些任务。如果超过了最大线程数,则等待。 1.线程复用:不用一直new新线程,重复利用已经创建的线程来降低线程的创建和销毁开销,节省系统资源。 2.提高响应速度:当任务达到时,不用创建新的线程,直接…
阻塞队列
概念:当阻塞队列为空时,获取(take)操作是阻塞的;当阻塞队列为满时,添加(put)操作是阻塞的。 好处:阻塞队列不用手动控制什么时候该被阻塞,什么时候该被唤醒,简化了操作。 体系:Collection→Queue→BlockingQueue→七个阻塞队列实现类。 粗体标记的…
JUC之CountDownLatch/CyclicBarrier/Semaphore
CountDownLatch内部维护了一个计数器,只有当计数器==0时,某些线程才会停止阻塞,开始执行。 CountDownLatch主要有两个方法,countDown()来让计数器-1,await()来让线程阻塞。当count==0时,阻塞线程自动唤醒。 案例一班长关门:ma…
Java锁
概念:所谓公平锁,就是多个线程按照申请锁的顺序来获取锁,类似排队,先到先得。而非公平锁,则是多个线程抢夺锁,会导致优先级反转或饥饿现象。 区别:公平锁在获取锁时先查看此锁维护的等待队列,为空或者当前线程是等待队列的队首,则直接占有锁,否则插入到等待队列,FIFO原则。非公平锁比…
系统设计题(网关日志系统)
每天总日志条数:3000250000=750000000(七亿五千万)条。 一天的有效流量时间不能算满24小时,夜晚一般流量比较少。一般可以算作10小时左右。 Kafka单机每秒10万次写入无压力,所以写入消息不会存在性能瓶颈问题。 单机Tomcat一般最大并发数为50…
集合类线程不安全
ArrayList不是线程安全类,在多线程同时写的情况下,会抛出java.util.ConcurrentModificationException异常。 1.使用Vector(ArrayList所有方法加synchronized,太重)。 2.使用Collections.syn…
CAS(比较并交换、乐观锁、版本号)原理剖析
CAS 是指Compare And Swap,比较并交换,是一种很重要的同步思想。如果主内存的值跟期望值一样,那么就进行修改,否则一直重试,直到一致为止。 运行结果:第一次修改,期望值为5,主内存也为5,修改成功,为2019。第二次修改,期望值为5,主内存为2019,修改失败。…
volatile关键字剖析
JMM是指Java内存模型,不是Java内存布局,不是所谓的栈、堆、方法区。 每个Java线程都有自己的工作内存。操作数据,首先从主内存中读,得到一份拷贝,操作完毕后再写回到主内存。 JMM可能带来可见性、原子性和有序性问题。所谓可见性,就是某个线程对主内存内容的更改,应该立刻…
面试题56 - II. 数组中数字出现的次数 II
方法二状态机位运算
下一页
个人成就
文章被点赞
27
文章被阅读
45,630
掘力值
1,391
关注了
16
关注者
17
收藏集
0
关注标签
6
加入于
2020-03-11