关于高并发和线程的关系?

来源:-

NeverGiveUp7

2016-05-30 10:53

看老师的讲解中发现在高并发中并没有使用多线程,我也一直没有搞明白多线程和高并发到底有什么关系,有几个问题想咨询一下大家。

1:高并发中一定要使用多线程吗?

2:高并发和多线程有没有关系?

3:多线程一般用在什么地方?



写回答 关注

1回答

  • 微笑听雨
    2016-12-13 14:36:38

    高并发意味着有成千上万的用户在很短的时间内对服务器发起请求
    
    高并发一定使用多线程,因为常用的web服务器像Tomcat这样的已经自己实现了多线程处理用户请求,
    所以在web开发中很少接触到多线程.
    
    因为高并发事件发生时就意味着单位时间有大量的用户数据需要处理,而多线程能够充分利用CPU资源,
    但线程不宜开的过多,一般用nio将网络数据密集化,然后用多个线程处理这些密集数据
    (这些线程数基本上和CPU个数或核数有关)
    
    单核处理器下多线程可以防止阻塞,这就解释了为什么google不让在android的UI线程中有网络操作,因为如果UI
    线程中出现的网络操作极有可能会卡住用户界面,这样的话用户什么都不能干了.但是你可以开启一个独立的线程
    来处理网络任务
    
    对于多核处理器下,多线程可以让独立的任务并行处理,这样可以大大节约一些任务的处理时间.比如现在的高性能
    服务器的CPU核心数都很多,如果应用程序只开一个线程,等于只用CPU的一个核心


Java高并发秒杀API之高并发优化

Java实现高并发秒杀API的第四门课,小伙伴一定可以从中受益

78600 学习 · 170 问题

查看课程

相似问题