随笔分类 -  java面试题 多线程

摘要:死锁产生的四个必要条件 互斥条件:资源是独占的且排他使用,进程互斥使用资源,即任意时刻一个资源只能给一个进程使用,其他进程若申请一个资源,而该资源被另一进程占有时,则申请者等待直到资源被占有者释放。 不可剥夺条件:进程所获得的资源在未使用完毕之前,不被其他进程强行剥夺,而只能由获得该资源的进程资源释 阅读全文
posted @ 2018-05-16 15:11 阿善9 阅读(4219) 评论(0) 推荐(0) 编辑
摘要:目前几乎很多大型网站及应用都是分布式部署的,分布式场景中的数据一致性问题一直是一个比较重要的话题。分布式的CAP理论告诉我们“任何一个 分布式系统都无法同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance),最多只能同时满足 阅读全文
posted @ 2018-05-09 23:53 阿善9 阅读(1448) 评论(0) 推荐(0) 编辑
摘要:静态变量:线程非安全。 加static关键字的变量,只能放在类里,不能放到方法里。 静态变量有默认初始化值。 成员变量也有初始化值 局部变量没有 静态变量表示所有实例共享的一个属性,位于方法区,共享一份内存,而成员变量是对象的特殊描述,不同对象的实例变量被分配在不同的内存空间,一旦静态变量被修改,其 阅读全文
posted @ 2018-05-09 23:39 阿善9 阅读(251) 评论(0) 推荐(0) 编辑
摘要:①首先会判断核心线程池里是否有线程可执行,有空闲线程则创建一个线程来执行任务。 ②当核心线程池里已经没有线程可执行的时候,此时将任务丢到任务队列中去。 ③如果任务队列(有界)也已经满了的话,但运行的线程数小于最大线程池的数量的时候,此时将会新建一个线程用于执行任务,但如果运行的线程数已经达到最大线程 阅读全文
posted @ 2018-05-07 10:08 阿善9 阅读(1279) 评论(0) 推荐(0) 编辑
摘要:1、new Thread的弊端 执行一个异步任务你还只是如下new Thread吗? 1 2 3 4 5 6 7 8 new Thread(new Runnable() { @Override public void run() { // TODO Auto-generated method stu 阅读全文
posted @ 2018-05-06 22:24 阿善9 阅读(1412) 评论(0) 推荐(0) 编辑
摘要:、索引利弊 --整理 1、索引的好处 a、提高数据检索的效率,降低检索过程中必须要读取得数据量,降低数据库IO成本。 b、降低数据库的排序成本。因为索引就是对字段数据进行排序后存储的,如果待排序的字段与索引键字段一致,就在取出数据后不用再次排序了,因为通过索引取得的数据已满足排序要求。另外,分组操作 阅读全文
posted @ 2018-05-06 21:26 阿善9 阅读(1603) 评论(0) 推荐(0) 编辑
摘要:在只有双重检查锁,没有volatile的懒加载单例模式中,由于指令重排序的问题,我确实不会拿到两个不同的单例了,但我会拿到“半个”单例。 而发挥神奇作用的volatile,可以当之无愧的被称为Java并发编程中“出现频率最高的关键字”,常用于保持内存可见性(随时见到的都是最新值)和防止指令重排序。 阅读全文
posted @ 2018-05-06 21:12 阿善9 阅读(13225) 评论(2) 推荐(7) 编辑
摘要:在ConcurrentHashMap没有出现以前,jdk使用hashtable来实现线程安全,但是hashtable是将整个hash表锁住,所以效率很低下。 ConcurrentHashMap将数据分别放到多个Segment中,默认16个,每一个Segment中又包含了多个HashEntry列表数组 阅读全文
posted @ 2018-05-06 20:23 阿善9 阅读(1979) 评论(0) 推荐(0) 编辑
摘要:一、进程与线程?并行与并发? 进程代表一个运行中的程序,是资源分配与调度的基本单位。进程有三大特性: 1、独立性:独立的资源,私有的地址空间,进程间互不影响。 2、动态性:进程具有生命周期。 3、并发性:多进程可以在单核CPU上并发运行。 线程代表进程中的一个顺序执行流,多线程就是一个进程中的多个顺 阅读全文
posted @ 2018-05-06 19:49 阿善9 阅读(2555) 评论(0) 推荐(1) 编辑
摘要:如果对什么是线程、什么是进程仍存有疑惑,请先Google之,因为这两个概念不在本文的范围之内。 用多线程只有一个目的,那就是更好的利用cpu的资源,因为所有的多线程代码都可以用单线程来实现。说这个话其实只有一半对,因为反应“多角色”的程序代码,最起码每个角色要给他一个线程吧,否则连实际场景都无法模拟 阅读全文
posted @ 2018-05-06 14:33 阿善9 阅读(303) 评论(0) 推荐(0) 编辑
摘要:一、概述 在windows中,每一个打开运行的应用程序或后台程序,比如运行中的QQ、谷歌浏览器、网易云音乐、资源管理器等都是一个进程。我们感觉这些程序是“同时”运行的,但实际上,一个处理器同一时刻只能运行一个进程,只是CPU在高速轮换执行让我们有这样的错觉,我们感受不到中断的原因是CPU执行速度相对 阅读全文
posted @ 2018-05-06 09:32 阿善9 阅读(261) 评论(0) 推荐(0) 编辑
摘要:Java多线程分类中写了21篇多线程的文章,21篇文章的内容很多,个人认为,学习,内容越多、越杂的知识,越需要进行深刻的总结,这样才能记忆深刻,将知识变成自己的。这篇文章主要是对多线程的问题进行总结的,因此罗列了40个多线程的问题。 这些多线程的问题,有些来源于各大网站、有些来源于自己的思考。可能有 阅读全文
posted @ 2018-05-05 21:31 阿善9 阅读(13267) 评论(1) 推荐(0) 编辑
摘要:(转载整理自并发编程网,略有修改整理,多涉猎多分享,共同学习,愿大家都成为Offer收割机!) 多线程和并发问题是Java技术面试中面试官比较喜欢问的问题之一。在这里,从面试的角度列出了大部分重要的问题,但是你仍然应该牢固的掌握Java多线程基础知识来对应日后碰到的问题! Java多线程面试问题 1 阅读全文
posted @ 2018-05-05 12:26 阿善9 阅读(312) 评论(0) 推荐(0) 编辑