![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JUC学习
qaq1314520
这个作者很懒,什么都没留下…
展开
-
JUC并发学习(八)
JUC并发学习(八)一、JMM1.什么是JMMJMM内存模型,约定|概念关于JMM的一些同步的约定线程解锁,必须把共享变量立刻刷回主存。 线程加锁,必须把主存中的最新值加入工作中。 加锁和解锁是同一把锁。八个操作关于主内存与工作内存之间的具体交互协议,即一个变量如何从主内存拷贝到工作内存、如何从工作内存同步到主内存之间的实现细节,Java内存模型定义了以下八种操作来完成:lock(锁定):作用于主内存的变量,把一个变量标识为一条线程独占状态。 unlock(解锁):作用于原创 2020-11-07 19:15:57 · 93 阅读 · 0 评论 -
JUC并发学习(七)
JUC并发学习(七)一、ForkJoin(工作窃取)维护的都是双端队列(大数据量使用)例子:普通程序public void test1(){ //普通程序 Long sum=0l; for (Long i = 0l; i <1000000000 ; i++) { sum+=i; } System.out.println(sum); }ForkJoinpubli原创 2020-11-07 17:06:55 · 143 阅读 · 0 评论 -
JUC并发学习(六)
JUC并发学(六)一、四大函数式接口(只有一个方法的接口)Lambda表达式,链式编程,函数式接口,stream流式计算。函数式接口1.Function接口 public static void main(String[] args) { Function function = new Function<String,String>() { @Override public String apply(Stri原创 2020-11-07 15:47:07 · 101 阅读 · 0 评论 -
JUC并发学习(五)
JUC并发学习一.线程池线程池的好处:(线程复用,可以控制最大线程数,管理资源)降低资源的消耗 提高响应的速度 方便管理2.线程三大方法public static void main(String[] args) { //创建单一线程 ExecutorService executor = Executors.newSingleThreadExecutor(); try { .原创 2020-11-07 14:23:04 · 77 阅读 · 0 评论 -
JUC并发学习(四)
JUC并发学习(四)1.阻塞队列阻塞:写入:如果队列满了,就必须住阻塞等待。 取:如果队列空的,必须等待生产。2.什么情况下使用阻塞队列?多线程并发处理,线程池3.四组api原创 2020-11-06 16:39:12 · 70 阅读 · 0 评论 -
JUC并发学习(三)
并发学习1.Callable与Runnable不同?有返回值。 可以抛出异常。 方法不同。run/call2.Callable使用(1.结果有缓存,2.结果get()会阻塞)public class CallTest { public static void main(String[] args) throws ExecutionException, InterruptedException { new Thread(new FutureTask<>(原创 2020-11-05 17:16:31 · 53 阅读 · 0 评论 -
JUC并发学习(二)
目录一.集合不安全(ConcurrentModificationException)1.并发下,ArrayList不安全2.List解决方法: 1.Vector(一般傻子都会想到,这个方法不太行)2.Collections.synchronizedList()方法3.new CopyOnWriteArrayList<>();写入时复制;4.Vector<>()与CopyOnWriteArrayList<>()对比:为什么不去用vector而..原创 2020-11-05 14:10:47 · 85 阅读 · 0 评论 -
JUC并发学习(一)
1.学习前的环境配置Project Structure一般在idea的右上角;(自己找一下)Setting配置2.开始学习 1.线程与进程进程是一个程序启动时出现的,一个进程包含多个线程,至少包含一个线程。java默认2个线程(mian 和GC) 2.并发和并行并发(多线程操作同一个线程)(单核cpu快速交替,模拟多个线程,cpu多核可以多线程)public class test1 { public static void main(String..原创 2020-11-05 12:53:15 · 177 阅读 · 0 评论