- 博客(21)
- 资源 (1)
- 收藏
- 关注
原创 避免死锁危险
在并发环境中,我们为了保证共享可变数据的线程安全性,需要使用加锁机制,如果锁使用不当可能会引起死锁,线程饥饿等问题。在Java应用程序中如果发生死锁,程序是无法自动恢复的,严重会造成程序崩溃,所以开发中在设计阶段就要规避死锁发生的情况。什么是死锁死锁:每个线程拥有其他线程需要的资源,同时又等待其他线程拥有的资源,并且每个线程在获得所需要的资源前都不会放弃已经拥有的资源。程序死锁发生的场景:1)交叉锁导致死锁在线程A持有锁L并想获取锁R的同时,线程B持有锁R并尝试获得锁L,那么这两个线
2021-04-27 19:39:08
263
原创 面试官这么问你,你如何回答?
勾勾收罗了小伙伴们的面试题目,把并发编程的面试题目总结如下,作为大家面试的参考。Q:线程的状态有哪些?线程的生命周期大致分为5个阶段:NEW(新建):新建一个Thread对象时,此时还没有线程。RUNNABLE(就绪):调用start方法可以使线程进入就绪状态。RUNNING(运行):处于就绪状态的线程获得了CPU就可以执行业务,进入运行状态。BLOCKED(阻塞):处于运行状态的线程如果调用了sleep、wait方法或者竞争锁失败会进入阻塞状态。TERMINATED(终止):线
2021-04-27 19:38:18
203
原创 简历?你就这么写
简历的内容都是仁者见仁智者见智,每个面试官对简历的感官都是不一样的,今天主要以勾勾作为面试官的角度来聊下勾勾的一些想法。自2020年的10月份开始勾勾就一直在为自己的小团队招聘Java高级开发工程师,要求跟你在一些网站上看到的差不多。1、大学本科以上学历,计算机或相关专业。2、三年以上工作经验,责任心强,沟通表达能力、逻辑思维能力、团队合作能力突出。3、熟悉JAVA开发,熟悉Spring、Dubbo等开源框架,熟悉设计模式。5、熟悉分布式系统基础设施中常用的技术,如缓存Redis、消息中
2021-04-27 19:37:24
438
原创 线程池原理
目录ThreadPoolExecutor介绍提交任务execute线程池关闭Executors工具类在前面的文章中,每次涉及到创建线程勾勾使用的都是new Thread的这种方式,但是开发中勾勾可是不会这么用的。我们看一下在实际开发中创建线程的规范,阿里巴巴Java开发手册上《并发处理》第3项和第4项规定:【强制】线程资源必须通过线程池提供,不允许在应用中自行显式创建线程。说明:使用线程池的好处是减少在创建和销毁线程上所消耗的时间以及系统资源的开销,解决资源不足的问题。如果不使
2021-04-21 16:38:43
106
原创 Java内存区域
目录运行时数据区PC寄存器Java虚拟机栈本地方法栈Java堆方法区栈帧结构局部变量表操作数栈动态链接方法调用正常完成方法调用异常完成虚拟机异常总结Java虚拟机是整个Java平台的基石,是Java技术用以实现硬件无关和操作系统无关的关键部分,是Java语言生成极小体积的编译代码的运行平台,是保障用于机器免于恶意代码损害的屏障。运行时数据区Java虚拟机定义了若干种程序运行期间会使用到的运行时数据区,其中有一些会随着虚拟机启...
2021-04-08 15:09:07
272
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人