![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JUC
多线程与高并发
In_life 在生活
珍惜当下。
展开
-
JUC并发编程DAY05
解释如下,先执行unpack(),导致park()方法形同虚设。举个例子:类似于高速公路的ETC,提前买好了通行证unpack,到闸机处直接抬起栏杆放行了,没有park拦截了。二.Condition接口中的await和signal方法实现实现线程的等待和唤醒。一.Object 类中的wait和notify方法实现线程等待和唤醒。1.先unpack(),再执行park()无效,没有阻塞效果。1.必须持有锁,都在synchronized ()代码块内。2.必须先wait,后notify。2.支持先唤醒后等待。原创 2023-06-17 18:48:27 · 67 阅读 · 0 评论 -
JUC并发编程DAY06
JMM原创 2023-06-19 14:08:40 · 72 阅读 · 0 评论 -
JUC并发编程DAY08
例如:原子引用Order类,即对这个类的操作是个原子操作。ABA问题:线程2 中A被先改为B,又再次被改为A。2.AtomicReference 原子引用类。1.AtomicInteger 原子类。CAS的缺点:循环时间长开销大。原创 2023-06-24 17:10:40 · 81 阅读 · 1 评论 -
JUC并发编程DAY09
只要垃圾回收机制一运行,不管JVM内存空间是否足够,都会回收该对象占用的内存。即使该对象以后永远都不会被用到,就算出现OOM,也不会对该对象进行回收。相当于没有使用任何引用,在任何时候都可以被垃圾回收器回收。除非为null,才会被垃圾回收。当系统内存充足时,不会被回收。当系统内存不足时,会被回收。get方法总是返回null。必须与引用队列联合使用。原创 2023-07-02 15:13:59 · 93 阅读 · 1 评论 -
JUC并发编程DAY04
以上,complete future,完结撒花!handle有异常也可以往下走。2.获取结果与触发计算。3.对计算结果进行处理。4.对计算结果进行消费。5.对计算速度进行选用。6.对计算结果进行合并。1.get与join。join不会抛出异常。原创 2023-06-13 21:54:45 · 81 阅读 · 1 评论 -
JUC并发编程DAY02
简言之:主线程将耗时任务,通过future放到异步线程中执行,主线程继续处理其他任务或者先行结束,再通过future获取计算结果。如获取异步任务的执行结果,取消任务的执行,判断任务是否被取消,判断任务执行是否完毕等。runnable接口:无返回值 不抛异常。callable接口:有返回值 抛异常。1.定义了操作异步任务执行的一些方法。一.Future接口。原创 2023-06-09 23:47:39 · 72 阅读 · 0 评论 -
JUC并发编程DAY07
1.可见性:对于一个被volatile修饰的变量,写操作,这个变量的最新值会立即刷新回主内存中。4.内存屏障:他使得CPU或者编译器对屏障指令的 前 后 的内存操作 进行排序约束。读加入屏障,线程私有工作区的内存数据失效,重新到主内存中获取最新数据。5.volatile写之前的操作,都禁止重排序到volatile之后。读操作,总是可以读取这个变量的最新值,也就是这个变量最后被修改的值。volatile读之后的操作,都禁止重排序到volatile之前。加载计算赋值----非原子操作---写丢失问题。原创 2023-06-21 15:06:25 · 58 阅读 · 0 评论 -
JUC并发编程DAY03
编写java类mythread 1继承了callable接口与mythread2继承了runnable接口。三.completablefuture提供了一种观察者模式类似的机制,可以让任务执行完成后通知监听的一方。四.completionstage代表异步计算过程中的某个阶段,一个阶段完成以后可能会触发另外一个阶段。一.代码手动实现了一下runnable与callable接口。get()方法在future计算完成之前会一直处于阻塞状态。七.runasync无返回值。二.future的缺点。原创 2023-06-12 19:30:18 · 67 阅读 · 0 评论 -
JUC并发编程DAY01
执行线程要求先成功持有管程,然后才能执行方法,最后当方法完成(正常异常)时释放管程。在方法执行期间,执行线程持有了管程,其他任何线程都无法再获取用一个管程。抽象方法:public abstract void 方法名();一.摩尔定律:CPU主频翻倍,揭示了信息技术进步的速度。总结:函数式接口即可以适用于Lambda 使用 的接口。函数式接口:有且仅有一个抽象方法的接口。Predicate接口。五.用户线程 守护线程。守护线程:垃圾回收线程。2.常用的函数式接口。四.进程 线程 管程。原创 2023-06-08 20:45:53 · 67 阅读 · 0 评论