线程池
个人认为,线程池的作用就是限制系统中执行线程的数量,避免服务器超负荷;减少创建和销毁线程的次数,从而减少了一些开销。
设计一个线程池单例,在内部创建指定数目的线程,并用一个线程空闲队列表示可分配线程。
注:还可以使用两个静态成员变量的方法限定最大线程数量。
处理高并发问题
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)分布式处理:将数据交给不同的处理器去处理,数据划分,结果归约