首页 > 编程语言 >JUC并发编程(2)

JUC并发编程(2)

时间:2022-11-18 11:13:26浏览次数:52  
标签:JUC 两秒 编程 原子 并发 内存 返回值 执行 方法

cpu密集型:几核就设置几,可以保持cpu的效率最高

io密集型:设置大于判断你程序中十分耗io资源的线程

ForkJoin:分而治之和工作窃取算法

Future:异步回调:比如我i请求阻塞线程两秒,但是主线程输出1111不会被这两秒所阻塞

1、我需要一个计算时间5秒方法的返回值
2、我不想等这5秒钟,我想要继续执行下面的代码,那就异步执行这个方法
3、当我通过get去获取这个返回值时,如果已经过了5秒,也就是方法执行完了,那我就可以直接得到返回值
4、如果方法还没执行完,这个时候就需要等待执行完才能拿到返回值

JMM:内存交互参数有8种:

 

 

Volatile:1保证可见性 2不保证原子性 3防止指令重排

第二条怎么能保证原子性:方法1 使用lock或synchronized  方法2:使用原子类:比如把int 换成AtomicInteger

怎么样防止指令重排:加了volatile关键字的会在上下都加一层内存屏障:禁止上面和下面的指令进行交换

 

CAS:如果我期望的值达到了,那么就更新,否则就不更新,比较当前工作内存中的值和主内存中的值,如果这个值是期望的,那么就更新,如果不是就一直循环

CAS的三个问题:ABA问题:使用原子引用可以解决(类似乐观锁)

可重入锁:相当于外面有一把琐,里面也有一把锁,只有当外面的锁释放以后,里面的锁才能执行

自旋锁主要是一个cas的操作

标签:JUC,两秒,编程,原子,并发,内存,返回值,执行,方法
From: https://www.cnblogs.com/zhangtaibing/p/16902560.html

相关文章

  • nginx高并发优化之缓冲配置
    一、配置http{proxy_buffer_size256k;proxy_buffers4256k;proxy_busy_buffers_size256k;proxy_temp_file_write_size256k;proxy_max_temp_file_size128m;......
  • 05.大促高并发系统下JVM如何调优指导(1) 内存溢出定位与分析在视频最后
                                                         ......
  • JUC学习笔记——并发工具线程池
    JUC学习笔记——并发工具线程池在本系列内容中我们会对JUC做一个系统的学习,本片将会介绍JUC的并发工具线程池我们会分为以下几部分进行介绍:线程池介绍自定义线程池模......
  • Linux网络编程 I/O多路复用—epoll
    1.关于epollepoll是Linux下多路复用IO接口select/poll的增强版本,它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率,因为它会复用文件描述符集合来传......
  • Linux网络编程 I/O多路复用——select和poll
    0.I/O多路复用所谓I/O就是对socket提供的内存缓冲区的写入和读出。多路复用就是指程序能同时监听多个文件描述符。 之前的学习中写了多进程和多线程版的简单服务器模......
  • C++20高级编程 第五版 电子书 pdf
    原作名:ProfessionalC++,FifthEdition 关注公众号,回复【电子书】即可: ......
  • 并发bug之源(二)-有序性
    什么是有序性?简单来说,假设你写了下面的程序:inta=1;intb=2;System.out.println(a);System.out.println(b);但经过编译器/CPU优化(指令重排序,和编程语言无关)后可......
  • JUC并发编程
    1并发:多个线程操作同一个资源在cou一核的时候,多个线程模拟并发2并行cpu多核的时候,多个线程同时执行3并发编程的本质:充分利用cpu的资源4wait和sleep的区别:wait来自o......
  • nunjucks模板语法
    循环语句server.jsconstKoa=require("koa");//引入koa构造函数constapp=newKoa();//创建应用constviews=require("koa-views");//引入koa-viewsconstnunju......
  • nginx高并发优化之upstream模块设置
    一、配置http{upstreamhttp_backend{hash$remote_addrconsistent;server192.168.10.131:3306max_fails=2fail_timeout=10sweight=1;server192.168......