摘要: 线程状态: 线程可以处于下面的四种状态之一: 新建(NEW) 线程被创建成功之后会短暂处于这个状态。线程已分配了必需的系统资源。并执行了初始化。此时线程已经有资格获得cpu时间片了。此后调度器将把这个线程转变为可运行或阻塞状态。 就绪(Rannable) 在这种情况下,线程只要分配到时间片,他就运行 阅读全文
posted @ 2017-05-09 22:52 风中小蘑菇 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 仿真任务 装饰花园 在这个仿真程序中花园委员会想统计每天通过多个门,进入花园的人数,每个门上有个十字转门相当于是计数器。转动任意一扇门就表示公园的分享计数值就会增加一。 代码如下: 计数器: 入口: 花园仿真类: public class Garden { public static void ma 阅读全文
posted @ 2017-05-09 22:12 风中小蘑菇 阅读(154) 评论(0) 推荐(0) 编辑
摘要: spring的整体架构 架构图: 这些模块可以分为以下几个部分: core container core container 包括 core beans EL context core 和 beans 模块是框架的基础部分,提供 IOC 控制反转 和依赖注入的特性。 core模块中包含spring框 阅读全文
posted @ 2017-05-08 22:26 风中小蘑菇 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 线程本地存储 防止任务在共享资源上产生冲突的第二种方式就是根除对线程的共享,线程本地存储一种自动化机制。可以为使用相同变量的每个不同的线程都创建不同的存储。如果你有5个线程要使用变量X所表示的对象,那么线程本地存储就会生成5个用于x的不同的存储块。主要是 可以使得线程与状态关联起来。 public 阅读全文
posted @ 2017-05-08 19:50 风中小蘑菇 阅读(103) 评论(0) 推荐(0) 编辑
摘要: 原子类 JAVASE5 引入了诸如:AtomicInteger、AtomicLong、AtomicRenference等原子性变量,他们提供下面形式的原子性条件更新: boolean cpmpareAndSet(exceptedValue,updateValue); 在常规编程中很难看见,在涉及性能 阅读全文
posted @ 2017-05-08 14:44 风中小蘑菇 阅读(110) 评论(0) 推荐(0) 编辑
摘要: 原子性和易变性 要理解黄色标注的内容那得 了解一下java中的内存模型: Java内存模型FAQ : http://ifeve.com/jmm faq/ 同步和java内存模型: http://ifeve.com/syn jmm/ java内存模型指南: http://ifeve.com/jmm c 阅读全文
posted @ 2017-05-07 17:58 风中小蘑菇 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 共享受限资源 关于线程的基本特性差不多介绍了,接下来是一些关于线程安全的问题了。 不正确的访问资源 定义一个检查器,去检查生成器生成的内容 public class EvenChecker implements Runnable { private IntGenerator intGenerator 阅读全文
posted @ 2017-05-07 12:36 风中小蘑菇 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 线程的捕获异常 由于线程的特性使得不能捕获从现场逃逸的异常,一旦异常逃出run方法,他会向外传播到控制台,除非采取特别的方法来捕获这些异常。 异常传播到控制台: 使用try catch 来捕获异常: 控制台输出: 证明确实没有捕获到异常 异常传播到控制台了 为了解决这个问题,要修改线程产生的方式。T 阅读全文
posted @ 2017-05-07 11:00 风中小蘑菇 阅读(188) 评论(0) 推荐(0) 编辑
摘要: join 一个线程上调用另一个线程,其效果是等待一段时间直到第二个线程结束才继续执行.也可以在join()加一个超时的参数,这样在这段时间到期还没有结束的话,join总能返回。 如果在一个线程中调用t.join(),那么此线程将被挂起直到t运行结束才恢复: 输出: sleeper:s1 is int 阅读全文
posted @ 2017-05-06 14:35 风中小蘑菇 阅读(115) 评论(0) 推荐(0) 编辑
摘要: 让步 yield() 给线程调度机制一个暗示:你的工作已经做得差不多了,可以让别的线程使用cpu了.这只是一个暗示,没有任何机制保证它会被采纳。 后台线程 后台线程是指程序执行时候,在后台提供一种通用服务的线程。并且这种线程并不属于程序的不可缺少的一部分。因此当所有的非后台线程结束时,程序也就截止了 阅读全文
posted @ 2017-05-05 19:42 风中小蘑菇 阅读(155) 评论(0) 推荐(0) 编辑