![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
并发编程
文章平均质量分 81
noodles_mee
任何不能拿到关键结果的努力都是半途而废,
展开
-
Lock用法和加锁原理
note: 1)加锁语句lock.lock();catch语句中发生的,这两个部分可能发生的异常不影响finally执行。synchronized同步机制是依赖JVM实现,Lock主要依赖抽象队列同步器(AbstractQueuedSynchronier,AQS)实现的,AQS是一个双向链表,使用一个整型变量state表示对共享区域的加锁状态,对于每个尝试访问临界区的线程都会被封装成双向链表中的一个节点,主要通过tryacquired获取临界区访问权,通过tryrelease释放临界区访问权。原创 2023-05-09 22:45:35 · 488 阅读 · 1 评论 -
synchronized用法加锁原理
由于方法没有设置锁,两个线程都可以进入方法内,线程A进入代码块之后,线程B尝试进入代码块失败,因为线程A已经获得synchronized后括号内对象的锁,线程B只有在线程A退出同步代码块之后,释放对象锁,线程B才可以进入同步代码块,在此之前,线程B只能阻塞等待。一个类中定义一个静态同步方法,创建两个含有静态同步方法对象实例,开启两个线程,在线程A中,实例1调用静态同步方法,并在方法中睡眠5秒钟,同时实例2也调用静态同步方法。线程A进入同步代码块之后,线程B只有在线程A退出同步代码块之后才进入了同步代码块。原创 2023-05-01 22:54:50 · 1063 阅读 · 0 评论 -
线程池使用总结
针对不同执行任务类型,给线程池核心线参数程设置不同的值,可以充分利用CPU资源,提高任务执行效率原创 2022-08-21 17:39:37 · 727 阅读 · 0 评论 -
I/O分类和作用
目录I/O作用I/O分类JAVA I/0 分类(BIO)JDK 1.4 引入Nio包和原来IO区别NIO中三个核心组件-channel、buffer、selctorNIO包中常见的channel缓冲区选择器selectorAIO模型I/O作用I/O通信指的是将数据从数据源传输到接收端。I/O分类JAVA I/0 分类(BIO)JDK 1.4 引入Nio包和原来IO区别IO和NIO读取数据方式流程IO和NIO读取数据原理图IO和NIO模型对比NIO从channel向buffer原创 2022-01-24 01:29:01 · 954 阅读 · 0 评论 -
java锁分类
为了保证并发编程安全,java提供了各种各样的锁,将并发操作通过逻辑转化为顺序执行,了解锁的分类有助于从整体上对java锁理解。原创 2022-01-21 17:46:20 · 499 阅读 · 0 评论 -
java并发编程安全性问题和对应解决办法
java并发编程安全性问题和对应解决措施原创 2022-01-20 22:08:50 · 501 阅读 · 0 评论