上一页 1 ··· 4 5 6 7 8 9 10 11 12 13 下一页
摘要: 不可变对象一,不可变对象的需要满足的条件1.对象创建以后其状态就不能修改2.对象的所有域都是final类型3.对象是正确创建的(对象创建期间,this引用没有逸出)二,可以采用的方式:1.将类设置为final,该类不能被继承2.将所有的成员声明为私有的,这样就不运行直接访问这些成员3.对变量不提供setter方法,将所有可变的成员声明为final,这样只能对他们赋值一次,通过构造器初始化所有成员,... 阅读全文
posted @ 2018-08-22 22:43 inspire0x001 阅读(240) 评论(0) 推荐(0) 编辑
摘要: 2.饿汉模式优化 3.懒汉模式1 4.懒汉模式2 5.懒汉模式3 6.懒汉模式4 7.枚举模式 阅读全文
posted @ 2018-08-22 22:29 inspire0x001 阅读(216) 评论(0) 推荐(0) 编辑
摘要: 一,线程安全性1.定义:当多个线程访问某个类时,不管运行时环境采用 任何调度方式 或者这些进程将如何交替执行,并且在主调代码中不需要任何额外的同步或协同,这个类都能表现出 正确的行为,那么称这个类是线程安全的2.线程安全性体现在三个方面:原子性:提供了互斥访问,同一时刻只能有一个线程来对他操作可见性:一个线程对主内存的修改可以及时被其他线程观察到有序性:一个线程观察其他线程中的指令执行顺序,由于指... 阅读全文
posted @ 2018-08-22 22:21 inspire0x001 阅读(1953) 评论(0) 推荐(0) 编辑
摘要: 一,Two-Phase Termination模式 翻译过来就是:分两阶段终止 二,示例程序 三,特点 安全地终止线程必定会进行终止处理发出终止请求后尽快进行终止处理 四,java.util.cocurrent包与线程同步 1.CountDownLatch类 2.CyclicBarrier类 阅读全文
posted @ 2018-08-07 21:06 inspire0x001 阅读(285) 评论(0) 推荐(0) 编辑
摘要: 一,Future模式 假设有一个方法需要花费很长的时间才能获取运行结果。那么,与其一直等待结果,不如先拿一张 提货单。获取提货单并不耗费时间。这里提货单就称为Future角色获取Future角色的线程会在稍后使用Future角色来获取运行结果在处理开始时先返回Future角色,等到其他线程出来终止后 阅读全文
posted @ 2018-08-07 07:46 inspire0x001 阅读(700) 评论(0) 推荐(1) 编辑
摘要: 一,Worker Thread模式 也叫ThreadPool(线程池模式) 二,示例程序 情景:一个工作车间有多个工人处理请求,客户可以向车间添加请求。请求类:Request定义了请求的信息和处理该请求的方法车间类:Channel定义了车间里的工人,存放请求的容器。接收请求的方法,处理完请求后取出请 阅读全文
posted @ 2018-08-05 13:45 inspire0x001 阅读(405) 评论(0) 推荐(0) 编辑
摘要: 一,Thread-Per-Message模式 翻译过来就是 每个消息一个线程。message可以理解为命令,请求。为每一个请求新分配一个线程,由这个线程来执行处理。Thread-Per-Message模式中,请求的委托端和请求的执行端是不同的线程,请求的委托端会告诉请求的执行端线程:这项工作就交给你 阅读全文
posted @ 2018-08-05 13:40 inspire0x001 阅读(1305) 评论(1) 推荐(0) 编辑
摘要: 一,Read-Write Lock模式 在Read-Write Lock模式中,读取操作和写入操作是分开考虑的。在执行读取操作之前,线程必须获取用于读取的锁。在执行写入操作之前,线程必须获取用于写入的锁。所以:当一个线程在读取时,其他线程可以读取,但是不可以写入。当一个线程正在写入时,其他线程不可以 阅读全文
posted @ 2018-07-31 21:14 inspire0x001 阅读(516) 评论(0) 推荐(0) 编辑
摘要: 一,Producer-Consumer模式 Producer:生产者的意思,指的是生成数据的线程。Consumer:消费者的意思,指的是使用数据的线程当生产者和消费者以不同的线程运行时,两者之间的处理速度差异就会引起问题。比如,消费者想获取数据,可是数据还没有生成。或者生产者想要交付数据,而消费者的 阅读全文
posted @ 2018-07-31 07:47 inspire0x001 阅读(617) 评论(0) 推荐(0) 编辑
摘要: 一.程序的异常:Throwable 严重问题:Error ,我们不处理。这种问题一般很严重,不如内存溢出 问题:Exception 编译问题:不是RuntimeException异常。必须进行处理,如果不处理编译不能通过 运行问题:RuntimeException,这种问题也不处理。是因为代码不够严 阅读全文
posted @ 2018-07-30 20:51 inspire0x001 阅读(236) 评论(0) 推荐(0) 编辑
上一页 1 ··· 4 5 6 7 8 9 10 11 12 13 下一页