为什么平时的curd都不用到多线程

java程序都是以main方法入口的,一个main方法就是一个线程,也就是我们所说的主线程,然后还有个负责gc的守护线程。 当我们进入mian方法开始,就是从上往下一直执行,知道结束。
而在web应用中,我们开启了服务器(例如tomcat),服务器也是从main方法开始执行,使用socket不断监听端口,并且开辟了一个线程数量为200的线程池(tomcat)。当我们请求一个接口时,服务器匹配到对应的接口,然后分配了一条线程,然后让我们执行这个接口,这样这个接口的执行方法就是单线程,因为单线程,所以我们在执行这个接口是就不用考虑多线程问题,因此在这个方法中,我们就使用不到例如concurrentHashmap,hashtable,copyOnWriteArraylist等线程安全的集合类,通常使用arraylist,hashmap就可以了。
那什么时候我们才能用到多线程呢?我遇到的几个情况
个人理解:
1.当一个接口要请求不同的数据库时,我们可以开辟一条线程去请求另一个数据库(因为请求数据库,是IO请求,速度比java中内存要慢,一条线程2次IO较慢)设置阻塞,等待返回后做处理

2.日志
使用线程将日志发送至kafka等中间件

3.需要异步执行的

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值