摘要: 案例二:两个人AB通过一个账户A在柜台取钱和B在ATM机取钱! 程序分析:钱的数量要设置成一个静态的变量。两个人要取的同一个对象值 (一)创建一个Bank类 (二)创建一个PersonA类 (三)创建一个PersonB类 (四)创建主方法的调用类 运行结果如下: 取完钱后程序运行结束。 阅读全文
posted @ 2018-10-06 19:54 诶呀呀~ 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 同步器的主要使用方式是继承,子类通过继承同步器并实现它的抽象方法来管理同步状态,在抽象方法的实现过程中免不了要对同步状态来进行修改,也就是int成员变量,这时就需要使用同步器提供的3个方法来进行性操作,这三个方法包括:getState()、setState()、compareAndSetState( 阅读全文
posted @ 2018-10-06 19:45 诶呀呀~ 阅读(114) 评论(0) 推荐(0) 编辑
摘要: Lock接口 lock锁和Synchronized锁都能够达到线程同步的目的,但是lock锁还可以显示的获取对象和释放锁,而且Synchronized则是隐式的。 lock接口提供的Synchronized关键字不具备的特性: (1)会尝试非阻塞的获取锁 当前线程尝试获取锁,如果这一时刻锁没有被其他 阅读全文
posted @ 2018-10-06 17:38 诶呀呀~ 阅读(96) 评论(0) 推荐(0) 编辑
摘要: 使用线程池的好处: 1.重用存在的线程,减少对象创建、消亡的开销 2.有效控制最大并发数,提高系统资源使用率 3.定时执行、定期执行 线程池所在的包是java.util .concurrent 顶级接口是Executor,真正的线程池接口是ExecutorService java.util.conc 阅读全文
posted @ 2018-10-06 16:26 诶呀呀~ 阅读(79) 评论(0) 推荐(0) 编辑