![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java多线程
文章平均质量分 81
小明是个程序猿
作为一名it小白,希望能和更多资深的大牛学习,也希望自己能够分享自己的文章,给更多同行带来帮助,同时也爱健身,爱音乐
展开
-
java多线程设计之Producer-Consumer模式
生产者安全地将数据交给消费者。producer是生产者的意思:指生产数据的线程,consumer是消费者的意思,指的是使用数据的线程。例如消费者想要获取数据,可数据还没生成,或者生成者想要交付数据,而消费者的状态还无法接受数据这样的情况。这个时候Producer-Consumer模式在生产者和消费者之间加入了一个“桥梁角色”,该桥梁角色用于消除线程间处理速度的差异。 这是一个实例图,方便理解Pro...原创 2018-05-17 11:15:41 · 1595 阅读 · 0 评论 -
java多线程模式之 Future模式
Future模式假如有一个方法需要花费很长时间才能获取运行结果,那么,与其一直等待结果,不如先拿一张“提货单”。 实例类图: Host类:创建FutureData的实例启动一个新线程(相当于制作蛋糕的蛋糕店),用于创建RealData的实例将FutureData的实例作为返回值返回给调用者其中future.setRealData(realdata);相当于在顾客拿着提货单来取货之前制作蛋糕的过...原创 2018-05-28 18:23:19 · 225 阅读 · 0 评论 -
java多线程之Thread-per-Message模式
Thread-per-Message模式(这项工作就交给你了)当你很忙碌的时候,这个时候公司楼下有个快递,于是你委托你的同事帮你拿一下你的快递,这样你就可以继续做自己的工作了在Thread-Per-Message模式中,消息的委托端和执行端是不同的线程,消息的委托端会告诉执行端线程,这个工作就交给你了 下面来看一段实例代码: Host类:针对请求创建线程的类,主要通过开启新的线程,调用helpe...原创 2018-07-12 16:05:46 · 166 阅读 · 0 评论 -
java多线程之Worker Thread模式
Worker Thread模式(工作没来,就一直等,工作来了就干活)Worker的意思是工作的人,在worker Thread 模式中,工人线程(worker thread)会逐个取回工作并进行处理,当所有的工作全部完成后,工人线程会等待新的工作来。 下面来看看程序实例图: ClientTread 表示发出工作请求的线程的类Request 表示工作请求的类Channel 接收工作请求并将工作请求交...原创 2018-05-25 18:00:33 · 5836 阅读 · 0 评论 -
java多线程模式之Thread-per-Message模式
Thread-per-Message模式(这项工作就交给你了)当你很忙碌的时候,这个时候公司楼下有个快递,于是你委托你的同事帮你拿一下你的快递,这样你就可以继续做自己的工作了在Thread-Per-Message模式中,消息的委托端和执行端是不同的线程,消息的委托端会告诉执行端线程,这个工作就交给你了 下面来看一段实例代码: Host类:针对请求创建线程的类,主要通过开启新的线程,调用helpe...原创 2018-05-25 17:07:33 · 759 阅读 · 0 评论 -
java多线程模式之Read-Write Lock 模式
6. Read-Write Lock模式大家一起读没问题,但读的时候不要写哦 在Read-Write Lock模式中,读取操作和写入操作是分开考虑的,在执行读取操作之前,线程必须获取用于读取的锁,而在执行写入操作之前,线程必须获取用于写入的锁。由于当线程执行读取操作时,实例的状态不会发生变化,所以多个线程可以同时读取,但在读取的时候,不可以写入。当线程执行写入操作时,实例的状态就会发生变化。因此,...原创 2018-05-21 18:47:32 · 442 阅读 · 0 评论 -
java多线程之Guarded Suspension模式
Guarded Suspension模式(等我准备好哦)在Single Threaded Execution模式中,只要有一个线程进入临界区,其他线程就无法进入,只能等待。而在Guarded Suspension模式中,线程是否等待取决于守护条件。Guarded Suspension模式是在Single Threaded Execution模式的基础上附加了条件而形成的。 如下一段代码实例: r...原创 2018-05-14 17:16:35 · 453 阅读 · 0 评论 -
java多线程之Immutable模式
ImmutableImmutable(不可变的),Immutable角色是一个类,在这个角色中,字段的值不可修改,也不存在修改字段内容的方法。Immutable角色的实例被创建后,状态将不再发生变化。无需将Immutable角色的方法声明为synchronizedImmutable模式的类图: 何时使用Immutable:1. 实例创建后,状态不再发生变化时字段声明为final,不存在setter...原创 2018-05-12 16:59:05 · 359 阅读 · 0 评论 -
java多线程之Balking模式
Balking模式(不需要就算了)如果现在不适合执行这个操作,或者没必要执行这个操作,就停止处理,直接返回----这就是balking模式 下面看一个相关源码的实例Data类用于表示当前数据filenname表示文件的名称,context表示写入文件的内容,changed表示context值是否被修改change()方法修改context内容,同时设置changed为truesave()方法先检查...原创 2018-05-14 17:25:07 · 227 阅读 · 0 评论 -
java多线程设计——线程启动,互斥,Single Threaded Execution
1.线程的启动顺序,并发,并行顺序:用于表示多个操作“依次处理”。比如把十个操作交给一个人处理,这个人就得一个一个地按顺序来处理并行:用于表示多个操作“同时处理”。比如把十个操作交给两个人处理,这两个人就会并行处理。并发:将操作打散成多个步骤,然后依次执行,就像是说一个人同时做好几件事,但是他执行的动作是先做这件事,然后停下来再做另一件事。 实际上运行的线程就像上面这样在不断切换,顺序执行并发处理...原创 2018-05-10 20:34:30 · 202 阅读 · 0 评论 -
java多线程设计模式之Two-Phase Termination
Two-Phase Termination分两阶段终止的意思,它是一种先执行完终止处理再终止线程的模式 先从“操作中” 状态变为“终止处理中”状态,然后再真正的终止线程,这就是Two-Phase Termination模式该模式的要点如下:安全地终止线程(安全性)必定会终止处理(生存性)发出终止请求会尽快进行终止处理(响应性) 程序实例:CountupThread 表示进行计数的线程的类Main ...原创 2018-05-30 17:37:39 · 310 阅读 · 0 评论