摘要: 1、Java内存模型 共享内存模型指的就是Java内存模型(简称JMM),JMM决定一个线程对共享变量的写入时,能对另一个线程可见。从抽象的角度来看,JMM定义了线程和主内存之间的抽象关系:线程之间的共享变量存储在主内存(main memory)中,每个线程都有一个私有的本地内存(local mem 阅读全文
posted @ 2018-09-10 21:35 爱笑的berg 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 1、死锁含义 死锁是指多个进程因竞争资源而造成的一种僵局(互相等待),若无外力作用,这些进程都将无法向前推进。例如,在某一个计算机系统中只有一台打印机和一台输入 设备,进程P1正占用输入设备,同时又提出使用打印机的请求,但此时打印机正被进程P2 所占用,而P2在未释放打印机之前,又提出请求使用正被P 阅读全文
posted @ 2018-09-10 21:28 爱笑的berg 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 1、ConcurrentLinkedQueue 是一个适用于高并发场景下的队列,通过无锁的方式,实现了高并发状态下的高性能,通常ConcurrentLinkedQueue性能好于BlockingQueue.它是一个基于链接节点的无界线程安全队列。该队列的元素遵循先进先出的原则。头是最先加入的,尾是最 阅读全文
posted @ 2018-09-10 21:15 爱笑的berg 阅读(1307) 评论(0) 推荐(0) 编辑
摘要: 1、Vector与ArrayList区别1)ArrayList是最常用的List实现类,内部是通过数组实现的,它允许对元素进行快速随机访问。数组的缺点是每个元素之间不能有间隔,当数组大小不满足时需要增加存储能力,就要将已经有数组的数据复制到新的存储空间中。当从ArrayList的中间位置插入或者删除 阅读全文
posted @ 2018-09-10 21:00 爱笑的berg 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 1、sleep()和wait()方法异同 sleep方法和wait方法都可以用来放弃CPU一定的时间,不同点在于如果线程持有某个对象的监视器,sleep方法不会放弃这个对象的监视器,wait方法会放弃这个对象的监视器1)Thread.sleep():方法导致了程序暂停执行指定的时间,让出cpu该其他 阅读全文
posted @ 2018-09-10 20:46 爱笑的berg 阅读(213) 评论(0) 推荐(0) 编辑
摘要: 如何实现线程间通讯,有如下三种方法:1、使用Semaphore (信号量)类来控制线程的等待和释放 功能:三个线程 a 、b 、c 并发运行,b,c 需要 a 线程的数据怎么实现 分析:考虑到多线程的不确定性, 因此我们不能确保 ThreadA 就一定先于 ThreadB 和 ThreadC 前执行 阅读全文
posted @ 2018-09-10 20:31 爱笑的berg 阅读(291) 评论(0) 推荐(0) 编辑
摘要: 1、子线程运行执行 10 次后,主线程再运行 5 次,这样交替执行三遍 package threadLearning.threadAlternates; public class Bussiness { private boolean subFlag = true;//主线程和子线程切换的控制开关 阅读全文
posted @ 2018-09-10 20:21 爱笑的berg 阅读(469) 评论(0) 推荐(0) 编辑
摘要: 1)当一个线程访问object的一个synchronized(this)同步代码块时,另一个线程则无法该object的另外一个synchronized(this)同步代码块。 public class Thread1 { public void m4t1() { synchronized (this 阅读全文
posted @ 2018-09-10 20:14 爱笑的berg 阅读(477) 评论(0) 推荐(0) 编辑
摘要: 1、多个线程行为不一致共同操作一个数据如果每个线程执行的代码不同,这时候需要用不同的 Runnable 对象:有如下两种方法:方法1)将共享数据封装在另外一个对象中,然后将这个对象逐一传递给各个 Runnable 对象。每个线程对共享数据的操作方法也分配到那个对象身上去完成,这样容易实现针对该数据进 阅读全文
posted @ 2018-09-10 20:03 爱笑的berg 阅读(1233) 评论(0) 推荐(0) 编辑
摘要: 该部分为一些零散的面试理论知识点:1、ConcurrentHashMap的并发度是什么 ConcurrentHashMap的并发度就是segment的大小,默认为16,这意味着最多同时可以有16条线程操作ConcurrentHashMap,这也是ConcurrentHashMap对Hashtable 阅读全文
posted @ 2018-09-10 19:53 爱笑的berg 阅读(490) 评论(0) 推荐(0) 编辑
摘要: 1、生产者消费者模型作用和示例如下:1)通过平衡生产者的生产能力和消费者的消费能力来提升整个系统的运行效率 ,这是生产者消费者模型最重要的作用2)解耦,这是生产者消费者模型附带的作用,解耦意味着生产者和消费者之间的联系少,联系越少越可以独自发展而不需要收到相互的制约备注:对于生产者消费者模型的理解将 阅读全文
posted @ 2018-09-10 19:19 爱笑的berg 阅读(291) 评论(0) 推荐(0) 编辑