Java设计优化
驼君
咸鱼一条
展开
-
Java并行程序设计模式——Guarded Suspension模式
问题引出假如说你的服务器在很短时间内承受了大量的客户端请求(如果这是你朋友用Python搞你的话请好好打他一顿),客户端请求量可能超过了服务器本身的即时处理量,而服务端程序又不能丢弃任何一个客户请求,应该怎么办?答:最佳处理方案莫过于让客户端排队请求进行排队,由服务端程序一个个处理。这样既保证了所有的客户端请求均不丢失,同时也避免了服务器由于同时处理太多的请求而崩溃。这就是Guarded Su...原创 2019-12-02 22:15:24 · 175 阅读 · 0 评论 -
Java并行程序设计模式——Future模式
问题引出现在我们想要炒一道菜,但是我们没有厨具和菜,现在我们从网上订购了一套厨具,但在厨具送来的期间,我们不必一直等到厨具到来,而是可以先去买菜,然后厨具到了之后直接开始炒菜这就是Future模式,在程序设计中,当某一段程序提交了一个请求,期望得到一个答复。但非常不幸的是,服务程序对这个请求的处理可能很慢,比如这个请求可能是通过互联网、HTTP或者Web Service等并不太高效的方式调用的...原创 2019-11-30 15:21:23 · 453 阅读 · 0 评论 -
Java并行程序设计模式——Master-Worker模式
Master-Worker模式是常用并行模式之一,他的核心思想是==系统由两类进程协作工作:Master进程和Worker进程。Master进程负责接收和分配任务,Worker进程负责处理子任务。==当各个Worker进程将子任务处理完成后,将结果集返回给Master进程,由Master进程做归纳和汇总,从而得到系统的最终结果好处能够将一个大任务分解成若干个小任务,并行执行,从而提高系统的吞...原创 2019-12-01 10:46:37 · 512 阅读 · 0 评论 -
常用优化组件——对象复用—"池"
对象池化,是目前非常常用的一种系统优化技术。它的核心思想是:如果一个类被频繁请求使用,那么不必每次都生成一个实例,可以将这个类的一些实例保存在一个"池"中,待需要使用的时候直接从池中获取。这个"池"就称为对象池在实现细节上,它可能是一个数组,一个链表或者任何集合类对象池的使用非常广泛,其中最熟悉的,就是线程池和数据库连接池线程池线程池中保存着可以被重用的线程对象,当有任务被提交到线程池中,...原创 2019-11-21 18:54:10 · 347 阅读 · 0 评论 -
常用优化组件——缓冲
缓冲区是一块特定的内存区域,开辟缓冲区的目的是通过缓存来缓解应用程序上下层之间的性能差异,提高系统性能漏斗的初始口径很大,并且拥有一定的容量,因此茶壶中的水可以先倒入漏斗中,就像内存中的数据先写入一块缓冲区。只要漏斗够大,茶壶里的水很快就能倒完。至此,上层系统完成工作,可以去处理其他业务逻辑。而此时,大部分水在漏斗中,可以有下层系统慢慢处理,直至水完全进入瓶中,漏斗(缓冲区)被清空基于这种结...原创 2019-11-21 16:13:26 · 292 阅读 · 0 评论