摘要: 目录1 并发包1.1同步容器类1.1.1Vector与ArrayList区别1.1.2HasTable与HasMap1.1.3 synchronizedMap1.1.4 ConcurrentHashMap1.1.5 CountDownLatch​​​​​​1.1.6 ... 阅读全文
posted @ 2018-07-25 04:06 LoseMyFuture 阅读(11862) 评论(0) 推荐(1) 编辑
摘要: synchronized:代码开始上锁,代码结束时释放锁;内置锁、自动化的、效率低、扩展性不高(不够灵活); JDK1.5并发包Lock锁 保证线程安全问题,属于手动挡,手动开始上锁,手动释放锁,灵活性高; Lock 接口与 synchronized 关键字的区别 Lock 接口可以尝试非阻塞地获取 阅读全文
posted @ 2018-07-24 04:42 LoseMyFuture 阅读(270) 评论(0) 推荐(0) 编辑
摘要: synchronized:代码开始上锁,代码结束时释放锁;内置锁、自动化的、效率低、扩展性不高(不够灵活);JDK1.5并发包Lock锁 --保证线程安全问题,属于手动挡,手动开始上锁,手动释放锁,灵活性高;Lock 接口与 synchronized 关键字的区别Lo... 阅读全文
posted @ 2018-07-24 04:33 LoseMyFuture 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 小红,女小红,女小红,女小红,女小红,女小红,女小红,女小红,女小红,女 出现以上结果??消费者一直消费或者生产者一直生产 解决方法:生产者生产完成后消费者方可消费,否者不可消费,消费者未消费或者未消费完生产者不可生产,一次生产一次消费。其实也就是保证对res共享资源的操作同一时刻仅有同一个线程进行 阅读全文
posted @ 2018-07-24 02:58 LoseMyFuture 阅读(535) 评论(0) 推荐(0) 编辑
摘要: 多线程之间通讯,其实就是多个线程在操作同一个资源,但是操作的动作不同。 第一个线程写入count,另一个线程取读取count的值.实现读一个,写一个操作。 小明,男 小明,女 小红,女 小明,男数据格式发生错误?????System.out.println(res.username+","+res. 阅读全文
posted @ 2018-07-24 01:43 LoseMyFuture 阅读(467) 评论(1) 推荐(1) 编辑
摘要: public class ThreadVolatile extends Thread { public boolean flag=true; @Override public void run() { System.out.printl... 阅读全文
posted @ 2018-07-23 20:06 LoseMyFuture 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 如果要了解Java内存模型,就得对多线程的三大特性有初步的了解。1、原子性:独一无二、一个操作或者多个操作 要么全部执行并且执行的过程不会被任何因素打断,要么就都不执行。比如i = i+1;其中就包括,读取i的值,计算i,写入i。这行代码在Java中是不具备原子性的,... 阅读全文
posted @ 2018-07-23 18:25 LoseMyFuture 阅读(2080) 评论(1) 推荐(1) 编辑