摘要: 反射机制 什么是Java反射 就是正在运行,动态获取这个类的所有信息。 反射机制的作用 1,反编译:.class-->.java 2.通过反射机制访问java对象的属性,方法,构造方法等; 反射机制的应用场景 Jdbc 加载驱动 Spring IOC 框架 反射机制获取类有三种方法 //第一种方式: 阅读全文
posted @ 2018-10-26 23:35 toov5 阅读(387) 评论(0) 推荐(0) 编辑
摘要: 互斥锁,就是悲观锁,保证一个线程进去。线程会从sleep(加锁)--》runng(解锁) ,过程中有上下文的切换,cpu的抢占,信号的发送等开销。 自旋锁:线程一直都是running(加锁--》解锁),死循环检测锁位的标志位,机制不复杂。 自旋锁:由于自旋锁使用者一般保持锁时间非常短,因此选择自旋锁 阅读全文
posted @ 2018-10-26 21:17 toov5 阅读(285) 评论(0) 推荐(0) 编辑
摘要: 原子类 java.util.concurrent.atomic包:原子类的小工具包,支持在单个变量上解除锁的线程安全编程 原子变量类相当于一种泛化的 volatile 变量,能够支持原子的和有条件的读-改-写操作。AtomicInteger 表示一个int类型的值,并提供了 get 和 set 方法 阅读全文
posted @ 2018-10-26 18:41 toov5 阅读(6977) 评论(2) 推荐(0) 编辑
摘要: 悲观锁和乐观锁与CAS无锁机制很相关 乐观锁本质是无锁的 所以没有阻塞等待嘛 效率比较高 重试 --CAS无所机制 乐观锁 总是认为不会产生并发问题,每次去取数据的时候总认为不会有其他线程对数据进行修改,因此不会上锁,但是在更新时会判断其他线程在这之前有没有对数据进行修改,一般会使用版本号机制或CA 阅读全文
posted @ 2018-10-26 17:23 toov5 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 相比Java中的锁(Locks in Java)里Lock实现,读写锁更复杂一些。假设你的程序中涉及到对一些共享资源的读和写操作,且写操作没有读操作那么频繁。在没有写操作的时候,两个线程同时读一个资源没有任何问题,所以应该允许多个线程能在同时读取共享资源。但是如果有一个线程想去写这些共享资源,就不应 阅读全文
posted @ 2018-10-26 16:49 toov5 阅读(223) 评论(0) 推荐(0) 编辑
摘要: 锁的种类: 读写锁 悲观锁 乐观锁 CSA无锁 自旋锁 AQS 非公平锁 公平锁 互斥锁 排它锁 分布式锁(redis实现 和 zk实现) 轻量级锁(lock),重量级锁(synchronize) 重入锁 锁作为并发共享数据,保证一致性的工具,在JAVA平台有多种实现(如 synchronized 阅读全文
posted @ 2018-10-26 15:34 toov5 阅读(1726) 评论(0) 推荐(0) 编辑
摘要: 根据前面我所说的Futrue模式,手写一个: 分别对应的Java代码,大家拿来参考: 启动类主函数: 结果: 大家对应着上一篇博客好好研究下,这个模式的应用场景还是蛮多的。代码挺有趣的。 当要获取资源的时候,data.getResult() ,如果资源没有准备好false;那么就会阻塞该线程。直到资 阅读全文
posted @ 2018-10-26 14:32 toov5 阅读(345) 评论(0) 推荐(0) 编辑