线程池,处理高并发问题,处理大数据量的方法

线程池


个人认为,线程池的作用就是限制系统中执行线程的数量,避免服务器超负荷;减少创建和销毁线程的次数,从而减少了一些开销。

设计一个线程池单例,在内部创建指定数目的线程,并用一个线程空闲队列表示可分配线程。

注:还可以使用两个静态成员变量的方法限定最大线程数量。


处理高并发问题


1、CDN层:动静分离

2、云+端

3、服务层:

        1)分布式

        2)集群

        3)异步解耦

                a、Async

                b、MQ

        4)代码效率

4、缓存层:

        1)分布式

        2)多级缓存

        3)提高命中率

5、DB层:

        1)sql语句优化

        2)读写分离

        3)索引

        4)分库分表        


处理大数据量的方法


1)分而治之/hash映射+hash统计+排序

2)Bloomfilter/Bit map:用来实现数据共享、进行数据判重、集合求交集

3)Trie树/数据库/倒排索引:节点孩子表示方式

4)外排序

5)分布式处理:将数据交给不同的处理器去处理,数据划分,结果归约




你可能感兴趣的:(java)