首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Java多线程探索(一):为什么要使用ThreadPoolExecutor?

    其实可以将这个问题替换成,使用单线程处理问题有什么不足?单线程意味着所有的线程都是串行工作,也就是每个线程都必须等待上一个线程全部处理完成之后才能开始工作。当某个线程需要处理一个极大的文件时,此时用户就只能呆呆地等在电脑前直到这个线程处理完成之后才能进行下一项任务的处理。   而当引入多线程的概念之后,所有的线程可以并发的进行工作。注意,这里的并发执行指的是同一段时间内同时进行,但是从微观来看仍然是串行进行(CPU是单核的情况)。 那么有同学会疑惑,既然微观上仍然是串行,为什么说多线程在用户体验上会由于单线程。这里就要归功于线程调度策略,在引入多线程的概念之后,每个线程在使用CPU时都有固定的时间片,如果执行时间超过规定的时间片,那么就需要将CPU让给其他的线程进行使用。从宏观上来看,多个线程同时在进行工作,也就是上面所说的同一段时间同时进行。除此以外,当线程出现由于IO操作等发生阻塞时,也会将资源让给其他线程进行使用。因此,从用户角度来说,多线程的引入提升了用户的体验感。

    02
    领券