随笔分类 -  JUC

摘要:一 . 概念 我们使用多个线程的时候,我们需要线程运行之间按照一定的顺序运行下去,这个就需要线程之间的通信. 二 .例子 我们使用经典的生产者和消费者模式演示一下. 我们创建了两个线程,一个生产产品,另外一个线程消费产品. 我们使用了wait()方法和notify()方法发送信号量,实现线程之间的同 阅读全文
posted @ 2018-04-29 16:35 最爱五仁月饼 阅读(110) 评论(0) 推荐(0) 编辑
摘要:一 .概述 死锁是一种状态: 多个线程争夺多个锁,如果控制不当,每个线程都获得一部分锁而无法获取所有的全部的锁,此时就会发生死锁. 在一般状态下,死锁在没有外界的干预下会一直陷入到等待当中,也就是说,程序根本无法运行下去. 二 . 死锁 死锁的状态是我们不想看见的,但是当我们遇到的时候我们需要进行诊 阅读全文
posted @ 2018-04-29 14:22 最爱五仁月饼 阅读(164) 评论(0) 推荐(0) 编辑
摘要:一 概述 多线程在效率上能带给我们一些提升,但是也带来了一些其它的问题,这些问题如果不解决,我们根本无法保证线程的运算结果是正确的. 那么,这个时候使用多线程根本不存在任何意义. 带来的问题: [1] 多线程共享一个资源 造成资源状态不一致 [2] 多线程的执行顺序 ,线程一旦运行起来,我们能无法控 阅读全文
posted @ 2018-04-29 14:06 最爱五仁月饼 阅读(111) 评论(0) 推荐(0) 编辑
摘要:一 .概述 在jdk之中之前又一个stop方法可以关闭线程,但是那个方法存在线程安全的问题,现在已经被废除掉了. 之后就没有出现关闭线程的方法了. 但是在我们的使用过程之中,我们需要关闭线程,这个时候,我们就需要用其它的方式来完成线程的关闭操作. 二 . 使用标记位完成 以上的方式时可以完成任务的, 阅读全文
posted @ 2018-04-29 12:58 最爱五仁月饼 阅读(214) 评论(0) 推荐(0) 编辑
摘要:一 . 概述 join方法的核心作用就是: 当前线程等待子线程结束. 我们可以看到方法的重载,其实就是调用的线程等待子线程多少时间. 如果不传参数,默认为子线程完成之后才运行. 二 . 测试用例 现在我们创建了一个任务,打印1到1000,主线程和一个子线程分别进行. 打印的效果就是主线程和子线程不断 阅读全文
posted @ 2018-04-29 09:46 最爱五仁月饼 阅读(184) 评论(0) 推荐(0) 编辑
摘要:一 .概述 线程的优先级: 我们创建线程的时候会指定一个优先级,这个优先级会影响该线程执行的机会. 机会的含义就是该线程执行的机会比较大,但是在一定时间内是无法保证这个线程执行的次数一定比优先级低的线程执行的次数多. 优先级: 只能代表一个概率的时候,在长时间的运行过程中才能保证优先级有效. 线程的 阅读全文
posted @ 2018-04-28 21:12 最爱五仁月饼 阅读(144) 评论(0) 推荐(0) 编辑
摘要:一 . 后台线程 一个线程是在线程创建的时候被指定为在后台执行的一种特殊线程. 注意 : [1] 后台线程需要在启动之前进行指定. [2]daemnon的优先级别很低,也就是说它运行的机会比较少. [3]后台线程的生命周期依赖于其父线程的生命周期,也就是说,如果没有非后台线程, 那么后台线程自动结束 阅读全文
posted @ 2018-04-28 21:02 最爱五仁月饼 阅读(119) 评论(0) 推荐(0) 编辑
摘要:一 .Thread的构造 首先看下源码 : 我们可以看到Thread的构造使用了init()函数. 通过这个函数,Thread的构造就出现了多种.我们就需要理解一下init的方法. 我们可以看到这个四个参数的含义了 [1]线程组 [2]线程的逻辑单元 [3]线程的名字 [4]线程的栈大小 二 .线程 阅读全文
posted @ 2018-04-28 20:36 最爱五仁月饼 阅读(125) 评论(0) 推荐(0) 编辑
摘要:一 . 概述 策略设计模式就是将功能的实现抽离出来,形成统一的接口. 提供一个统一的接口参数方法. 二 . 代码实现 这里用一个交税的例子说明一下. [1] 策略接口 [2] 策略的实现 [3]调用处 [4]测试 三 . 说明 (1)设计模式的核心有两处 [1] 策略接口 [2]调用处使用接口(抽象 阅读全文
posted @ 2018-04-28 18:57 最爱五仁月饼 阅读(127) 评论(0) 推荐(0) 编辑
摘要:一 . 概述 在jdk之中包含两种线程的创建方式,并统一使用start()方法进行线程的启动. 二 .继承Thread 来创建线程 三 ,实现Runnable 接口创建线程 四 .两种方法的比较 [1] 两种方式其实是一种方式,只不过使用Runnable接口来抽离线程逻辑单元. [2] 我们一般情况 阅读全文
posted @ 2018-04-28 18:46 最爱五仁月饼 阅读(109) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示