juc
wudalang5
java学习
展开
-
jdk的native源码hotspot 学习姿势
1.在这个 http://hg.openjdk.java.net/jdk8/jdk8/jdk/file/00cd9dc3c2b5/src/share/native/java/lang/Thread.c在上面链接里面查看对应的native 本地方法所对应 的hotspot虚拟机的源码如上面贴出的就是 Thread相关的 本地方法,如sleep的源码,则需要搜索 方法名 JVM_Sleep 这...原创 2020-04-07 15:37:06 · 276 阅读 · 0 评论 -
利用 lock- condition- AtomicInteger 实现 多个线程顺序轮番执行 数字累加逻辑
感觉是5.0.的一个bug吧!!!!!!我从官网拿下的spring5.0.x的gradle编译源码执行@postConstruct不生效的!原创 2020-01-19 18:05:00 · 330 阅读 · 0 评论 -
利用 lock- condition- AtomicInteger 实现 多个线程顺序轮番执行 数字累加 逻辑
说,明:拿到一道面试题如下:构造5个线程,从1-100每个线程依次输出5个数字,例如线程1输出1-5,线程2输出6-10,…,线程5输出21-25,然后线程1输出26-30,依次类推到100截止。一开始网上先自己查询了嘿嘿想偷下懒,可是发现并灭有找到写的合适的,故自己尝试多次,优化了几次,简单重构了下,并实现了动态可扩展,我觉得还不错,分享下。代码如下(直接拿走,main 方法运行可见结...原创 2020-02-26 21:58:45 · 520 阅读 · 0 评论 -
从list安全到vector到CopyOnWriteArrayList再到ReentrantReadWriteLock
list的add, get操作都不加锁,多线程不安全二。.vetor,----》读写都加sync重量级锁–>保证了安全 和 强的实时一致性但是结果:读锁 只能1个线程 同时读,不可写。写锁,只能一个线程写,同时不可读。一句话读写都是只能支持一个线程访问当然也就安全却性能差了三。.CopyOnWriteArrayList为vetor后juc的改良,其思想是 读写分离模式(但是缺点...原创 2019-12-31 13:35:16 · 269 阅读 · 0 评论 -
wait--notify--虚假唤醒的理解!
总:我发现其实网上好多人在解释 线程间通信--问题:虚假唤醒的时候都是说错了的,下面谈谈自己的理解!!!!!案例:一个资源类 中 +1和 -1 的2个同步方法,操作其属性 number;首先应该明确:线程中使用wait()后,当前线程方法其实是相当于释放了当前对象的锁的**(这也是多线程环境下,其他线程才能并发调用 到 同一 对象的 其他同步方法 如:-1数字的同步方法)**1.假如此时...原创 2019-12-17 20:25:06 · 645 阅读 · 1 评论