摘要:
CompletableFuture 所有asyn结尾的函数都是指把任务提交给线程池中的线程安排去执行 为什么需要completableFuture 最主要的原因:future.get()是一个阻塞方法,这严重违背了我们使用Future异步的初衷,completableFuture可以注册回调机制 f 阅读全文
posted @ 2021-01-17 15:05
王者之剑KO
阅读(104)
评论(0)
推荐(0)
摘要:
Phaser 相位器 功能描述 它与CountDownLatch/cyclicBarrier类似,但是它的功能更加强大 CyclicBarrier,允许一组线程互相等待,直到到达某个公共屏障点。它提供的await()可以实现让所有参与者在临界点到来之前一直处于等待状态。 CountDownLatch 阅读全文
posted @ 2021-01-17 15:04
王者之剑KO
阅读(94)
评论(0)
推荐(0)
摘要:
Exchanger 功能描述 两个线程通过exchanger()交换数据 要点描述 参数是传给另一个线程的值,返回值是另一个线程返回给当前线程的值 线程会在exchange的语句wait()住等待另一个线程返回值 必须成对出现,而且无法保证出现的顺序,如果存在落单的exchange线程则会永久进入阻 阅读全文
posted @ 2021-01-17 15:03
王者之剑KO
阅读(108)
评论(0)
推荐(0)
摘要:
Atomic类 比volatile要好,它满足了线程安全的三个要求 原子性 可见性 有序性 AtomicInteger AtomicXXX的其他类型都是大同小异 private volatile int value; public final int get() //获取当前的值 public fi 阅读全文
posted @ 2021-01-17 15:02
王者之剑KO
阅读(116)
评论(0)
推荐(0)
摘要:
观察者设计模式 核心思想 当被观察者发生变化时主动通知观察者,不需要观察者询问 使用场景 1.监控线程生命周期,线程发现异常时主动通知监控程序 读写锁分离 核心思想 多个线程读和多个线程写同一块数据的情况下,允许多线程同时读,但是有线程在读的时候不允许写操作,只允许一个时刻只有一个线程在写,即读写互 阅读全文
posted @ 2021-01-17 15:01
王者之剑KO
阅读(132)
评论(0)
推荐(0)
摘要:
线程组 线程组的作用是:可以批量管理线程或线程组对象,有效地对线程或线程组对象进行组织。 构造函数 ThreadGroup(String name)//默认parent为当前线程组 ThreadGroup(ThreadGroup parent, String name) 具体方法 //评估当前活跃的 阅读全文
posted @ 2021-01-17 15:00
王者之剑KO
阅读(88)
评论(0)
推荐(0)
摘要:
创建多个线程 Stream.of("f1","f2").foreach(n->new Thread().start()); 线程休眠 TimeUnit.Second.sleep()//好过Thread.sleep(),可控时间级别,增强可读性 程序中断之后主动调用的钩子函数 可以用于程序中断后释放资 阅读全文
posted @ 2021-01-17 14:59
王者之剑KO
阅读(104)
评论(0)
推荐(0)
摘要:
数据同步与共享 多个线程在抢占CPU的时候会出现切换,对共享变量的修改无法保证先后顺序。因此如果存在对共享变量的判断,则需要对其判断和修改进行同步改写。 synchronized同步 使用synchronized所在的代码,相当于加上一层栅栏,就像我们去动物园检票口一样,一开始大家从各个地方来,然后 阅读全文
posted @ 2021-01-17 14:58
王者之剑KO
阅读(108)
评论(0)
推荐(0)
摘要:
进程和线程的区别 进程是资源分配的最小单位,线程是CPU调度的最小单位 进程是一个资源的容器,为进程里的所有线程提供共享资源,是对程序的一种静态描述, 线程是计算机最小的调度和运行单位,是对程序的一种动态描述 一静一动,正好组成了完整的程序 线程和进程的区别是什么?www.zhihu.co 线程的 阅读全文
posted @ 2021-01-17 14:57
王者之剑KO
阅读(156)
评论(0)
推荐(0)

浙公网安备 33010602011771号