并发编程
文章平均质量分 70
江海i
不积小流,无以成江海。
展开
-
JUC——Day04
JUC Day04视频总结自B站狂神说JAVA1.单例模式只要是单例模式一定是构造器私有。1.1 饿汉式饿汉式单例模式最大的特点就是在程序运行时,会立即将所需要的全部对象创建完毕,会影响加载速度浪费资源。/** * @date 2020/7/29 7:37 * hungry * 饿汉式单例模式 */public class Demo01 {// 在程序执行时都会创建完毕,消耗资源过多。 private byte[] data1 = new byte[1024*10原创 2020-07-29 10:25:04 · 4688 阅读 · 0 评论 -
JUC——Day03
JUC Day03文章总结自B站狂神说JAVA1.ForkJoin分支合并:并行执行任务来提高效率。把大任务划分成小任务来分来执行,将每个小任务得到的结果整合为最终结果。特点:工作窃取:不让执行完毕任务的线程等待,去帮助其它的线程执行任务。demo:/** * @date 2020/7/28 7:54 * * 求和计算任务 */public class ForkJoinDemo01 extends RecursiveTask<Long> { priv原创 2020-07-28 10:51:04 · 13613 阅读 · 0 评论 -
JUC——Day02
JUC Day02文章总结自B站狂神说JAVA1.Callable优点:可以有返回值,可以抛出异常。代码测试:/** * @date 2020/7/27 8:04 * callable 测试 */public class CallableDemo01 { public static void main(String[] args) throws ExecutionException, InterruptedException {// 启动callable原创 2020-07-27 15:20:23 · 147 阅读 · 0 评论 -
JUC——Day01
JUC Day01文章总结自B站狂神说JavaJUC 是 java.util.concurrent以及下面的atomic和locks包的简称。称为并发编程,面试高频问。1. 概念1.1 进程与线程进程是一个程序运行的集合,一个进程可以包含多个线程,至少包含一个线程,线程是进程最小的运行单位。在Java中最少包含两个线程:main、GC线程。Java并不是真的可以开启线程,只能调用本地底层的C++方法,Java无法直接操作硬件设备。1.2 并发与并行并发为多个线程操作同一个资源,并行为多个原创 2020-07-26 16:33:06 · 215 阅读 · 0 评论 -
Java多线程——Day01
Java.Thread Day01文章总结自B站狂神说JAVA1.什么是多线程一个程序同时进行多个相同或者不同的任务。一个人吃饭时拉屎(不要脑补)也是多线程。Java中允许应用程序同时执行多个线程,每个线程都有优先权。2.创建多线程2.1 继承Thread类新建一个类继承Thread类public class ThreadDemo01 extends Thread { /** * run线程 */ @Override public void原创 2020-07-24 08:19:26 · 140 阅读 · 0 评论 -
Java多线程——Day02
多线程02文章总结自:B站狂神说Java1.静态代理模式真实对象和代理对象都要实现同一个接口,代理对象要代理真实的角色。/** * @date 2020/7/24 8:33 * 静态代理 */public class StaticProxy { public static void main(String[] args) {// 不代理 U u = new U(); u.HappyMarry();// 代理原创 2020-07-24 10:07:40 · 142 阅读 · 0 评论 -
Java多线程——Day03
多线程Day 03本文总结自B站狂神说JAVA1. 线程同步在Day01中有一个多个线程操作同一个对象的案例,没有处理好并发,所以出现了错误。解决方案:将需要同时访问该对象的线程进入这个对象的等待池形成队列,等前面的线程完毕,下一个线程才可以继续使用,这种方案叫做线程同步。线程同步必须要有队列和锁。说到底线程同步是用来解决线程的安全性问题。缺陷:会损失一部分性能,一个有锁的线程会导致其它需要此锁的线程挂起;一个优先级高的线程如果等待一个优先级低的线程的锁,会导致优先级倒置。加锁的方法是:在需要同原创 2020-07-25 11:21:22 · 96 阅读 · 0 评论