关于Json处理的两个实例
摘要:json可以说是一个对象嵌套对象的数据格式,每解一层依然是一个对象,上面实现循环读取json对象里 的数据
阅读全文
关于wait和notify的用法
摘要:通常,多线程之间需要协调工作。例如,浏览器的一个显示图片的线程displayThread想要执行显示图片的任务,必须等待下载线程 downloadThread将该图片下载完毕。如果图片还没有下载完,displayThread可以暂停,当downloadThread完成了任务 后,再通知displayThread“图片准备完毕,可以显示了”,这时,displayThread继续执行。以上逻辑简单的说就是:如果条件不满足,则等待。当条件满足时,等待该条件的线程将被唤醒。在Java中,这个机制的实现依赖于wait/notify。等待机制与锁机制是密切关联的。例如:synchronized(obj)
阅读全文
一个基于atomic的卖票测试
摘要:package testAtomic;import java.util.concurrent.atomic.AtomicInteger;import sun.security.krb5.internal.Ticket;public class Tictit { private AtomicInteger ticitNumber;public Tictit (AtomicInteger ticAtomicInteger){ this.ticitNumber=ticAtomicInteger;}public AtomicInteger getTicitNumber() { return ticit
阅读全文
关于高并发的aotomic
摘要:AtomicInteger线程安全的根源,熟悉并发的同学一定知道在java中处理并发主要有两种方式:1,synchronized关键字,这个大家应当都各种面试和笔试中经常遇到。2,volatile修饰符的使用,相信这个修饰符大家平时在项目中使用的也不是很多。这里重点说一下volatile:Volatile修饰的成员变量在每次被线程访问时,都强迫从共享内存重新读取该成员的值,而且,当成员变量值发生变化时,强迫将变化的值重新写入共享内存,这样两个不同的线程在访问同一个共享变量的值时,始终看到的是同一个值。java语言规范指出:为了获取最佳的运行速度,允许线程保留共享变量的副本,当这个线程进入或者离
阅读全文