JUC
Younjzxx
深度学习从入门到Java开发
展开
-
JUC学习笔记六:synchronized和ReentrantLock详解
synchronizedsynchronized关键字是通过jvm实现的在jdk1.6之前:简单粗暴的字节码层面实现同步。如果使用同步代码块,那么就是通过monitorenter和monitorexit指明同步代码块开始和结束的位置,synchronized代码块会维护一个锁计数器,当enter时,先判断计数器是不是0,如果是0就进入,进入之后将计数器加1,在退出时将计数器设为0,表明锁被...原创 2020-03-15 21:10:14 · 190 阅读 · 0 评论 -
JUC学习笔记五:四大函数式接口和流Stream; ForkJoinPool
一、四大函数式接口和Stream二、ForkJoin原创 2020-02-08 10:36:20 · 367 阅读 · 0 评论 -
JUC学习笔记四:ThreadPool线程池
一、ThreadPool线程池线程池的优势:在多核cpu没有普及的年代,单核cpu就像是假的多线程。一个cpu需要在多个线程之间来回切换。现在的多核电脑,多个线程可以各自跑在独立的CPU上,不用切换,效率高。线程池做的工作只要是控制运行的线程数量,处理过程中将任务放入队列,然后在线程创建后启动这些任务,如果线程数量超过了最大数量,超出数量的线程排队等候,等其他线程执行完毕,再从队列中取出任务...原创 2020-02-07 21:15:11 · 168 阅读 · 0 评论 -
JUC学习笔记三:AQS并发工具类;读写锁;阻塞队列
一、AQS并发工具类二、读写锁三、阻塞队列原创 2020-02-06 22:41:29 · 199 阅读 · 0 评论 -
JUC学习笔记二:线程间的通信;同步方法锁的理解;juc集合类简介
线程间的通信之while防止虚假唤醒在对多个线程操作共享数据的逻辑进行同步时,要避免使用if判断的方式使某线程进入waiting状态,要改为使用while。原因是while可以防止虚假唤醒:用if使线程进入waiting可能会使判断过的正在等待被唤醒的线程直接进入,不管符不符合if的条件;而while则会重新判断当前正在waiting的线程是否符合while()内的条件,保证多个线程之间不会有...原创 2020-02-06 12:16:51 · 214 阅读 · 0 评论 -
JUC学习笔记一:复习多线程操作资源类的方法
高内聚,低耦合所谓高内聚,低耦合就是每个程序要实现的特定功能要尽量多的在自己的内部完成,对外部提供很少量的接口以便调用。并行和并发并行即多个任务在自己的分配的各自的资源上执行,即多个任务同时跑,互不冲突。并发即多个任务在统一的一个资源内执行,多个任务会抢占同一资源,在cpu中体现为交替执行,并不能同时执行,但是cpu在多个线程中切换的速度会非常快,所以宏观上看似是同时的。最大的区别体现在...原创 2020-02-04 21:32:19 · 738 阅读 · 1 评论