随笔分类 -  java多线程

摘要:exchanger 1.它的使用必须是成对出现的.如果不是成对的话,可能交换错误 2.exchanger 交换的信息是同一个内存地址,而不是copy 会涉及到线程安全的问题 3.exchanger 是可以一直发生交换的 public static void main(String[] args) { 阅读全文
posted @ 2019-05-07 16:02 北京de小刀 阅读(252) 评论(0) 推荐(0) 编辑
摘要:CountDownLatch 这个类使用起来比较简单.使用场景就是 你需要很多线程执行结束之后才执行最后的代码,那用这个就对了. 这个类底层是用aqs来实现的. 这类主要使用的方法 count.await(); count.countDown(); 里面的API很少 结束线程await() 1.co 阅读全文
posted @ 2019-05-06 13:44 北京de小刀 阅读(257) 评论(0) 推荐(0) 编辑
摘要:unsafe 锁与在jdk8中与其他的对比 最终测试: unsafe可以做哪些事情呢? unsafe. 直接调用cpu缓存 c++ 汇编指令 跳过构造器直接创建类 public class UnsafefooTest { public static void main(String[] args) 阅读全文
posted @ 2019-05-06 09:56 北京de小刀 阅读(337) 评论(0) 推荐(0) 编辑
摘要:atomicReference 可以保证对象的原子操作. public static void main(String[] args) { AtomicReference<Simple> atomic = new AtomicReference<>(new Simple("xiaodao",23)) 阅读全文
posted @ 2019-05-05 17:19 北京de小刀 阅读(2166) 评论(0) 推荐(0) 编辑
摘要:看了前面的atomicInteger 这个就比较简单了 atomicBoolean 的使用 atomicLong 阅读全文
posted @ 2019-05-05 15:53 北京de小刀 阅读(585) 评论(0) 推荐(0) 编辑
摘要:并发编程的3个重要概念 1.原子性: 一个操作或者多个操作,要么全部成功,要么全部失败 1.java中保证了基本数据类型的读取和赋值,保证了原子性,这些操作不可终端 2.可见性: volatile 可以保证可见性.主要是把变量放在主存里 多个线程访问这个变量,一个线程修改之后必须保证另一个线程可以看 阅读全文
posted @ 2019-04-30 18:07 北京de小刀 阅读(1251) 评论(0) 推荐(0) 编辑
摘要:利用atimicInteger cas的特性实现一个锁 主要是使用的是 atomicIntegerAPI 的compareAndSet()方法,让线程不在阻塞,获取不到直接失败. 我们先定义一个异常类 锁实现类: compareAndSet 主要就是对比,前面一个是期望值 后面一个是你要设置的值. 阅读全文
posted @ 2019-04-30 18:07 北京de小刀 阅读(266) 评论(0) 推荐(0) 编辑
摘要:CompletableFuture 前面我们使用过jdk5 提出future的用法,但是在获取结果上并不是那么友好 在Java8中,CompletableFuture提供了非常强大的Future的扩展功能,可以帮助我们简化异步编程的复杂性,并且提供了函数式编程的能力,可以通过回调的方式处理计算结果, 阅读全文
posted @ 2019-04-28 01:05 北京de小刀 阅读(641) 评论(0) 推荐(0) 编辑
摘要:future模式 在进行耗时操作的时候,线程直接阻塞,我们需要优化这样的代码,让他再启动一个线程,不阻塞.可以执行下面的代码. 这个时候我们就用到了未来者模式 future设计类 只有一个方法 futureTask 类 asyncFuture 类是fufure的实现类 FutureService 讲 阅读全文
posted @ 2019-04-26 15:44 北京de小刀 阅读(725) 评论(0) 推荐(0) 编辑
摘要:最近想研究下线程的使用,但是如果自己创建一个线程,太费系统性能 ,所以打算自己写个线程池 参考博客:https://www.cnblogs.com/dolphin0520/p/3932921.html 参考书籍:<<java并发编程的艺术>> 一 Java中的ThreadPoolExecutor类 阅读全文
posted @ 2019-03-29 17:19 北京de小刀 阅读(341) 评论(2) 推荐(1) 编辑
摘要:什么是进程 进程是一个可执行的应用程序,任何进程都有一个主线程作为入口,是线程的集合 什么是多线程 多线程可以提高效率,我们在电脑操作的时候,开多个窗口,并不是多线程并发,是cpu在切换,只不过速度很快,我们感觉不到,多线程是在同一个时刻同时进行 为什么要使用多线程? 假设你有100桶水,你一个小时 阅读全文
posted @ 2019-03-26 00:05 北京de小刀 阅读(302) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示