多线层
tiankongyun123
这个作者很懒,什么都没留下…
展开
-
网易云课堂学习-Fork/Join框架详解、FutureTask框架剖析
经典网关场景,查询多个系统数据 多线程应用 总的执行时间,取决于执行最慢的逻辑。 逻辑之间无依赖关系,可同时执行,则可以应用多线程技术进行优化。 Callable方法和和Runnable方法 一个是call方法,一个是run方法。 前者有返回值,后者无返回值 前者可以抛出异常,后者不可以抛出异常。 Fork/Join框架 ...原创 2020-06-04 11:17:25 · 197 阅读 · 0 评论 -
网易云课堂学习-线程池应用及实现原理解析
为什么要使用线程? 线程是不是越多越好? 线程在java中是一个对象,更是操作系统的资源,线程创建和销毁需要时间。如果创建时间+销毁时间 > 任务执行时间就很不划算。 java对象占用堆内存,操作系统占用系统内存,根据jvm规范,一个线程默认最大栈为1M,这个栈空间需要从系统内存中分配。线程过多,就消耗很多内存。 操作系统需要频繁切换上下文,影响性能。 线程池的推出,就是为了方便控制线程数量。 线程池原理-概念 线程池管理器:用于创建并管理线程池,包括创建线程池,销毁线程池,添加新任务。 工作线原创 2020-06-03 19:08:00 · 183 阅读 · 0 评论 -
网易云课堂学习-线程封闭之ThreadLocal和栈封闭
线程封闭的概念 多线程访问共享可变数据时,涉及到线程间数据同步的问题。并不是所有时候,都要用到共享数据,所以线程封闭概念就提出来了。 数据被封闭在各自的线程中,就不需要数据同步,这种将数据封闭在线程中而避免使用同步的技术称为线程封闭。 线程封闭的具体提现有:ThreadLocal、局部变量。 ThreadLocal ThreadLocal是java中一种特殊的变量。 线程级别的变量,每个线程都有自己的ThreadLocal。在并发模式下是绝对安全的。 栈封闭 局部变量的固有属性之一就是封闭在线程中。 他们原创 2020-06-03 17:18:30 · 123 阅读 · 0 评论 -
网易云课堂学习-线程通信
通信的方式: 要想实现多个线程之间的协同,如:线程执行先后顺序、获取某个线程的执行结果,等等。设计到线程之间相互通信,分为以下四类: 文件共享 网络共享 共享变量 jdk提供的线程协调API 细分为:suspend/resume、wait/notify、park/unpark 文件共享 变量共享 线程协作-jdk api API-被启用的suspend/resume 该api被启用的原因是,容易写出思索的代码。所以用wait/notify、park/unpark来代替。 suspend/resu原创 2020-06-03 17:01:56 · 141 阅读 · 0 评论 -
网易云课堂学习笔记-线程终止
不正确的线程终止-stop 正确的线程中止-interrupt 如果以上条件都不满足,则会设置此线程的终止状态。原创 2020-06-03 13:55:37 · 141 阅读 · 0 评论 -
网易云课堂学习笔记-线程的状态
6个状态定义:java.lang.Thread.State New:尚未启动的线程的状态。 Runnable:可运行的线程状态,等待CPU调度。 Blocked:线程阻塞,等待监视器锁的状态。处于synchronized同步代码块或方法中被阻塞。 Waiting:等待线程的状态。下列不带超时的方式:Object.wait(),Thread.join(),LockSupport.part()。 Timed Waiting:具有指定等待时间的等待线程的状态。下列带超时时间的方式:Thread.sleep、Ob原创 2020-06-03 13:39:39 · 142 阅读 · 0 评论