java网络编程初探

首先理解一个基本设计:
当一个方法使用不仅仅是在一个类,就需要考虑到一个很简单的设计。
如果涉及到多种变化,实现之前的差别很大,接口是一个非常好的选择,接口使用地好能极大程度上减少ifelse的使用。
如果各个组件之前完全平行,这个时候抽象出一个父类,也是很实用的,父类最大的优点在于,实现已经写好了,直接用就行(关键点就在于变与不变的比例到底有多少)。

比如以下代码:

AbstractStatementService
	CustomerStatementService extends AbstractStatementService
	CustomerMonthlyStatementService extends AbstractStatementService
	BrokerStatementService extends AbstractStatementService 
优点在于:
@Autowired
    protected ThreadPoolTaskExecutor statementExecutorPool;
1.多个类的autowired只需要做一次(复制粘贴给爷si)
2.方法的重写,使得结构会更加清晰
   

网络编程 ThreadPoolTaskExecutor
使用方式:

statementExecutorPool.execute(() -> {
	try {
	
	} catch (Exception ex) {
    e[0] = ex;
   log.error("customer monthly statement [{}] error", businessDate, ex);
                } finally {
   latch.countDown();
                }
}

注意这里的latch.countDown()
这里出现一段代码:这里实际上就是非常公式化的套用。

try {
            latch.await();
        } catch (InterruptedException ex) {
            log.error("customer monthly statement : CountDownLatch error ", ex);
            throw ex;
        }
        if(e[0] != null) {
            throw e[0];
        }

最后的总结就是,多线程的使用实际上门槛很低,出于畏惧心理往往使用很少。
使用起来不难,但是如果遇到问题了,该怎么去解决,也是非常头疼的,所以需要有技术过硬的大佬帮忙看着,同时自己也要总结经验,但不能不用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值