java并发编程的艺术
IDEA_TEYU_1112
其实吧压力也没那么大
展开
-
java面经查缺补漏之四十天(今天来补充几个算法计数排序,桶排序)
1.计数排序(桶排序的特殊情况,只是每个桶只有一个数)用于那些数字比较集中的,并且在一定范围内的,其实就是用hash数组先记录一下次数而已public static void jishusort(int[] array) { int max=Integer.MIN_VALUE; int min=Integer.MAX_VALUE; ...原创 2020-04-11 18:46:07 · 262 阅读 · 0 评论 -
java面经查缺补漏之三十九天(继续努力)
1.什么时候用原子操作类,举个例子?比如一个自增的操作就可以用原则操作类,原子操作类底层用的就是CAS。2.什么时候用volitile,举个例子?比如一个boolean的flag,因为它与上个状态无关。3.手写程序,10个多线程保证 i从0加到10?可以用原子操作类来实现import java.util.concurrent.atomic.AtomicInteger;...原创 2020-04-11 15:32:42 · 354 阅读 · 0 评论 -
java并发学习之资源限制
什么是资源限制?资源限制是指在进行并发编程时,程序的执行速度受限于计算机硬件资源或软件资源。 例如,服务器的带宽只有2Mb/s,某个资源的下载速度是1Mb/s每秒,系统启动10个线程下载资 源,下载速度不会变成10Mb/s,所以在进行并发编程时,要考虑这些资源的限制。硬件资源限 制有带宽的上传/下载速度、硬盘读写速度和CPU的处理速度。软件资源限制有数据库的连接 数和socket连接数等。...原创 2020-03-03 14:30:36 · 524 阅读 · 0 评论 -
java并发学习之多线程一定比串行快吗(如何减少上下文切换)
先来看一个测试表格发现多线程不一定更快,在次数比较少的时候反而更慢,因为线程需要创建和上下文切换的时间,那么如何减少上下文的切换呢?减少上下文切换的方法有无锁并发编程、CAS算法、使用最少线程和使用协程。1.无锁并发编程。多线程竞争锁时,会引起上下文切换,所以多线程处理数据时,可以用一 些办法来避免使用锁,如将数据的ID按照Hash算法取模分段,不同的线程处理不同段的数据。2.CA...原创 2020-03-03 14:10:29 · 525 阅读 · 0 评论