![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
多线程进阶JUC
多线程的知识
写代码的渣渣炜
这个作者很懒,什么都没留下…
展开
-
8锁现象
深刻理解我们的锁原创 2020-12-22 15:34:31 · 53 阅读 · 0 评论 -
生产者与消费者问题
生产者和消费者问题 Synchronized package com.www; /** * 线程之间的通信问题:生产者和消费者问题! 等待唤醒,通知唤醒 * 线程交替执行 A B 操作同一个变量 num = 0 * A num+1 * B num-1 * * @author Administrator */ public class PC { public static void main(String[] args) { Data data = new Data原创 2020-12-22 13:07:13 · 153 阅读 · 1 评论 -
synchronized跟lock的区别
1、synchronized是Java内置的关键字,Lock是一个Java类 2、synchronized不能获取锁的状态,Lock可以判断是否获取了锁 3、synchronized会自动释放锁,Lock必须手动释放锁,如果不释放锁就会死锁 4、synchronized 线程1(获得锁,阻塞),线程2(等待,傻傻的等),Lock锁就不一定等待下去(lock.tryLock()) 5、synchronized 可重入锁,不可以中断,非公平; Lock可重入锁,可以判断锁,非公平(可以自己设置) 6.原创 2020-12-22 00:40:01 · 54 阅读 · 0 评论 -
wait跟sleep的区别
最近笔试经常遇见就总结一下: 1、来自不同的类 sleep来自Thread wait来自Object 2、关于锁的释放 wait会释放锁,sleep会抱着锁睡,不会释放; 3、使用的范围不同 wait的使用范围只能是在同步代码块中 sleep可以在任何地方使用 4、是否需要捕获异常 wait不需要捕获异常 sleep必须要捕获异常 try { Thread.sleep(100); } catch (Interrupted...原创 2020-12-21 23:39:08 · 66 阅读 · 0 评论 -
并发跟并行的区别
并发编程:并发、并行 并发(多线程操作同一个资源) CPU 一核 ,模拟出来多条线程,天下武功,唯快不破,快速交替 并行(多个人一起行走) CPU 多核 ,多个线程可以同时执行; 线程池 ...原创 2020-12-21 23:16:35 · 83 阅读 · 0 评论 -
JUC的学习记录
JUC并不是什么高深的东西,它就是简简单单的三个Java的包(可以在线JDK文档中找)原创 2020-12-21 22:55:22 · 79 阅读 · 0 评论 -
lock锁
package com.www; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; public class SaleTicketDemo02 { public static void main(String[] args) { // 并发:多线程操作同一个资源类, 把资源类丢入线程 Ticket2 ticket = new Ticket2...原创 2020-12-22 00:25:31 · 115 阅读 · 0 评论 -
死锁避免方法
原创 2020-12-21 16:20:58 · 192 阅读 · 0 评论 -
线程的五大状态
package com.cn; /* * 1、建议线程正常停止--》利用次数,不建议死循环 * 2、建议使用标志位---》设置一个标志位 * 3、不要使用stop或者destroy等过时方法或者JDK不建议使用的方法 * */ public class TestStop implements Runnable { //设置一个标志位 private boolean flag = true; @Override public void run...原创 2020-12-20 22:50:55 · 56 阅读 · 0 评论 -
静态代理类比Thread
package com.cn; public class ProxyStatic { public static void main(String[] args) { WeddingComopany weddingComopany = new WeddingComopany(new you()); weddingComopany.HappyMarry(); } } interface Marry { void HappyMarry(); } .原创 2020-12-20 22:24:10 · 93 阅读 · 1 评论 -
Java8中的lambda形成的过程
lambda使用的前提是接口中的接口方法只有一个 注释123456分别是接口的实现类到静态内部类 到局部内部类到匿名内部类到简化成lambda的过程 package com.cn; public class Lambda { //3、静态内部类 static class Like2 implements ILike { @Override public void lambda() { System.out.println...原创 2020-12-20 20:47:34 · 99 阅读 · 0 评论