Java多线程并发-案例1

一、进程线程简介

1. 进程:一个计算机程序的运行实例,包含了需要执行的指令;有自己的独立地址空间,包含程序内容和数据;不同进程的地址空间是互相隔离的;进程拥有各种资源和状态信息,包括打开的文件、子进程和信号处理。

2. 线程:表示程序的执行流程,是CPU调度执行的基本单位;线程有自己的程序计数器、寄存器、堆栈和帧。同一进程中的线程共用相同的地址空间,同时共享进进程锁拥有的内存和其他资源。

线程状态如下图1:

图1

二、实际业务场景

1. 前端展示交付详情页,需调用不同外部系统接口10多个。

2. 每个外部接口返回不同参数对象。

3. 顺序调用外部接口会导致大接口响应时间较长。

三、可选方案

1. 提供多个小接口给前端,前端并发调用渲染数据。(不能超过10个http并发调用)

2. 服务端提供大接口,并发调用外部系统接口,封装数据返回前端。(响应时间依赖外部处理最慢的接口)

* 此场景无需考虑外部接口调用的有序性。

四、采用服务端多线程并发调用

1. 新建全局静态线程池:

2. 新建实现Callable线程类Thread:

3. 多线程并发调用,处理封装返回对象


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Java继承关系初始化顺序 父类的静态变量-->父类的静态代码块-->子类的静态变量-->子类的静态代码快-->父...
    第六象限阅读 2,172评论 0 9
  • 在一个方法内部定义的变量都存储在栈中,当这个函数运行结束后,其对应的栈就会被回收,此时,在其方法体中定义的变量将不...
    Y了个J阅读 4,435评论 1 14
  • 又来到了一个老生常谈的问题,应用层软件开发的程序员要不要了解和深入学习操作系统呢? 今天就这个问题开始,来谈谈操...
    tangsl阅读 4,163评论 0 23
  • 正义是个口号, 活在在追求者的嘴里。 正义是种迷信, 藏在虔诚者的心里。 正义是个谎言, 欺骗弱者的情感。
    星语月阅读 241评论 0 2
  • 如何对待人生,我们一直在经历着,但一直无法品透,生命何其长、又何其的短.理解生命也许在一生中的某一刻我们就会明白,...
    阿Mei阅读 132评论 0 0