摘要: 涉及到的实体类 阅读全文
posted @ 2018-05-01 14:58 陈东的博客 阅读(405) 评论(0) 推荐(0) 编辑
摘要: 面向对象的一个重要目标就是对代码的重用,支持这个目标的重要机制就是泛型; 1:使用接口类型表示泛型 例如 考虑由一些项组成的数组中找出最大项的问题,基本的代码是与类型无关的,但是它必须有一种能力来比较任意两个对象的大小,并且确定哪一个是大的,哪一个是小的,因此我们不能直接找出Object数组中的最大 阅读全文
posted @ 2018-04-27 23:47 陈东的博客 阅读(523) 评论(0) 推荐(0) 编辑
摘要: 我们熟悉的大多数数学函数都是由一个简单的公式来描述的, 阅读全文
posted @ 2018-04-27 21:54 陈东的博客 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 考虑有这样一个饭店 他有一个厨师和一个服务员 这个服务员必须等待厨师准备好食物。当厨师准备好时会通知服务员 之后服务员上菜,这样一个线程协作 厨师作为生产者 而 服务员作代表消费者 菜的java实例 服务员的实例 厨师的实例 饭店的实例 阅读全文
posted @ 2017-11-29 16:04 陈东的博客 阅读(274) 评论(0) 推荐(0) 编辑
摘要: 经过上篇的实例 线程在陷入阻塞时,在sychronized获取互斥锁陷入阻塞时,我们是无法进行中断的,javase5中提供了一种解决的办法 ReentrantLock ,我们常常用到的是它的lock()unlock方法,但是这里要重点说的是它的lockInterruptibly()方法 这种获取锁的 阅读全文
posted @ 2017-11-28 10:47 陈东的博客 阅读(1827) 评论(0) 推荐(0) 编辑
摘要: 线程的中断 线程在运行完run后会自动死亡 但是有的时候我们需要在run方法中的某一处中断该线程 那么我们就可以通过一个标识符 的true 和false来判定是否终结任务 并且可以通过为标识符赋值来加以控制 下面演示一个实例 演示一个花园想要通过每天通过大门的人数来了解进入公园的访问量,每一个大门都 阅读全文
posted @ 2017-11-27 17:24 陈东的博客 阅读(1007) 评论(0) 推荐(0) 编辑
摘要: Synchronized标记的代码必须给顶一个其上进行同步的对象,并且最合理的方式是,使用其方法正在调用的对象Synchronized(this)这是最常用的方式了,在这种方式中 如果获得了Synchronized块上的锁,那么该对象其他的Synchronized方法和临界区就不能调用了。所以有时候 阅读全文
posted @ 2017-11-24 14:54 陈东的博客 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 在开发过程中 当我们拿到一个线程非安全的java类的时候,我们可以额外创建这个类的管理类 并在管理类中控制同步 比如 一个非线程安全的Pair类 那么我们想要在线程安全的环境下来操作这个类的话 我们不可以修改原来类的代码结构 我们可以创建一个新的管理类 为了方便我们使用两种方式来实现同步 所以先创建 阅读全文
posted @ 2017-11-24 13:46 陈东的博客 阅读(242) 评论(0) 推荐(0) 编辑
摘要: jse5引入了诸如AtomicInteger、AtomicLong、AtomicReferencece等特殊的原子性变量类,这些类被调整为可以使用某一些现代处理器上可获得的,并且可以在机器级别上保持其原子性。在正常编程上不建议使用这种特殊的原子性变量类,在涉及到性能调优的时候,就可以用他们,下面我们 阅读全文
posted @ 2017-11-23 15:07 陈东的博客 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 在java谈到线程的同步方式,很多初学者(比i如我)最开始的理解是 内置锁sychronized、显示的Lock的lock()和unLock()和 volatile 这三种方式来控制线程的同步,但是在学习了volatile之后才发现 ,它在大多数的时候是不具备控制同步的能力。它的主要作用并不是控制同 阅读全文
posted @ 2017-11-23 14:32 陈东的博客 阅读(316) 评论(0) 推荐(0) 编辑