第一章总结* 多个程序共同执行的原因:资源利用率公平性便利性 * 线程的优势提高多处理器利用率建模的简单性 - 每个线程不需要知道与了解其他线程都做了什么,例如基于Servlet框架不需要知道调度细节异步事件的简化处理 - 响应更灵活的用户界面 - 事件分发机制 * 线程的风险安全性问题活跃性问题 ...
分类:
编程语言 时间:
2020-04-20 13:30:33
阅读次数:
62
2年经验java后端程序员的必备技术点总结(脑图), 脑图编辑工具:https://www.processon.com。必备技术点涉及操作系统、计算机网络、数据结构、数据库、 设计模式、java容器、java并发、JVM、spring、springspringcloud、redis、rabbitmq ...
分类:
编程语言 时间:
2020-04-18 22:47:30
阅读次数:
85
使用场景: 一个或N个线程,等待其它线程完成某项操作之后才能继续往下执行。CountDownLatch描述的是,一个或N个线程等待其他线程的关系。 使用方法: 设CountDownLatch个数:CountDownLatch countDownLatch=new CountDownLatch(3); ...
分类:
编程语言 时间:
2020-04-18 14:22:02
阅读次数:
70
使用场景: 多个线程相互等待,直到都满足条件之后,才能执行后续的操作。CyclicBarrier描述的是各个线程之间相互等待的关系。 使用步骤: 正常实例化:CyclicBarrier sCyclicBarrier=new CyclicBarrier(3); 带runnable的实例化,打破屏障时, ...
分类:
编程语言 时间:
2020-04-18 13:34:31
阅读次数:
82
最近当当的大促销又开始了,估计很多人脑子一热,又花钱囤了不少技术书吧。 在我看来大部分程序员买技术书的用途(以下排名按用途从大到小): 1. 让领导、同事看见,你看我多爱学习; 2. 给自己一个心理安慰,我还没废; 3. 枕头、显示器需要垫高了; 4. 睡前翻一翻,让自己快速入睡。 玩笑开完,如有误 ...
分类:
编程语言 时间:
2020-04-17 14:08:06
阅读次数:
78
背景 在jdk1.6以前synchronized的java内置锁不存在 偏向锁->轻量级锁->重量级锁 的锁膨胀机制,锁膨胀机制是1.6之后为了优化java线程同步性能而实现的。而1.6之前都是基于monitor机制的重量级锁。因为java内部对锁实现的封装,就算现在我们也只需要了解重量级锁就可以了 ...
分类:
编程语言 时间:
2020-04-15 18:07:04
阅读次数:
144
# 一面1. java动态***2. JVM垃圾回收3. java并发相关的包4. 重载与重写的区别5. 进程和线程的区别,通信方式6. 数据库索引建立,组合索引,组合索引命中问题7. 数据库锁的级别8. 一道写SQL语句的题,计算学生的成绩和9. 网络相关,桥接和NAT10. 算法:升序数组,从某... ...
分类:
编程语言 时间:
2020-04-14 15:16:49
阅读次数:
83
从本科时期学C语言的时候,我们就被教导: ++i 是先自增,后赋值 i++ 是先赋值,后自增 最近在看jvm虚拟机和java并发编程,希望从字节码的角度来进行介绍。 其实这个细节写的人已经不少了,但本人还是想稍微综合一下,更通俗、更直观地进行描述。 阅读本文需要对Java 虚拟机(Java Virt ...
分类:
编程语言 时间:
2020-04-11 23:43:49
阅读次数:
79
使用 synchronized关键字是并发编程中线程同步的常用手段之一,synchronized是悲观锁,其作用有三个: 互斥性:确保线程互斥的访问同步代,锁自动释放,多个线程操作同个代码块或函数必须排队获得锁,可见性:保证共享变量的修改能够及时可见,获得锁的线程操作完毕后会将所数据刷新到共享内存区 ...
分类:
编程语言 时间:
2020-04-04 21:10:57
阅读次数:
98
Java锁系列教程之独占式锁 在Java并发编程中,锁是一个很重要的对象。Java中锁有两种:隐式锁和显式锁。使用synchronized关键字的锁是隐式锁。因为锁的申请和释放都是由JVM来维护的,不用我们来手动处理。使用Java并发包locks包下的锁,需要使用者手动申请和手动关闭。这种形式是显式 ...
分类:
编程语言 时间:
2020-04-03 13:38:46
阅读次数:
76