Read-Write Lock模式:读写锁案例
Read-Write Lock模式:读写锁案例
生产者消费者模式,即N个线程进行生产,同时N个线程进行消费,两种角色通过内存缓冲区进行通信。
Balking模式:如果现在不适合或没必要执行这个操作,就停止处理,直接返回
。
Guarded Suspension模式思想就是:如果执行现在的处理会造成问题,那就让执行处理的线程进行等待
。Guarded Suspension模式通过让线程等待来保护实例的安全性
。就像你没穿衣服,让快递员在门口等你一会儿来保护你的隐私一样。
也就是说,该模式存在一个持有状态的对象,该对象只有在自身状态合适时,才会允许线程进行目标处理
。
在Single Threaded Execution模式中,只要有一个线程进入临界区,其他线程就无法进入,只能等待
。而在Guarded Suspension模式中,线程是否等待取决于守护条件
。后者是在前者基础上添加了附加条件而形成的。
Immutable不变模式就是指:确保实例的内部状态不会发生改变,这样在访问这些实例时就不需要增加耗时的互斥处理(如Single Threaded Execution模式中的对临界区进行互斥保护)。
如String类
就是一个Immutable类。因为String类中使用final关键字修饰字符串数组private final char value[];
来保存字符串,并没有修改字符串内容的方法。所以,String的实例所表示的字符串的内容不会发生变化。
Single Threaded Execution模式,即"以一个线程执行"。
就像独木桥一样,同一时间内只允许一个人通过,该模式用于设置限制,以确保同一时间内只能让一个线程执行处理。
主要思想
也就是:当我们修改多个线程共享的实例时,实例就会失去安全性。所以我们找出这个不安全的范围,将这个范围设置为临界区,并对临界区进行保护(使用synchronized),使其只允许一个线程同时执行。
针对多线程程序,我们不能单纯的来指出是好还是坏,需要遵循一定的评价标准来规范的指出好在哪里、差在哪里?
其实也就是: