上一页 1 2 3 4 5 6 7 8 ··· 10 下一页
  2020年6月20日
摘要: 使用线程池的原因 多线程是为了用来最大化发挥多核处理器的处理能力,但是线程是不能无限创建的,当线程创建太多时,反而会消耗CPU与内存资源。 线程的创建与销毁是需要时间的,假如一个线程的创建时间加上销毁时间还要远大于服务时间时,是得不偿失的;线程需要占用内存资源,大量线程的创建会占用宝贵内存资源,可以 阅读全文
posted @ 2020-06-20 23:22 CccccDi 阅读(113) 评论(0) 推荐(0) 编辑
  2020年6月19日
摘要: BlockingQueue BlockingQueue是并发容器的一种,在J.U.C的包路径下,是线程安全的一种实现,是基于阻塞队列的,该接口提供了相对于Queue的新的put()和take()操作。put()添加元素时,当阻塞队列满的情况下会阻塞下来,当有空间时才能进行添加操作,添加到队列尾部;t 阅读全文
posted @ 2020-06-19 21:08 CccccDi 阅读(815) 评论(0) 推荐(0) 编辑
  2020年5月29日
摘要: ConcurrentHashMap与HashMap的实现方法类似,不同的是它采用的是分段锁的思想支持并发的操作,它是线程安全的。 要了解ConcurrentHashMap,首先要了解Segment,一个Segment就相当于一个HashMap对象。与HashMap一样,Segment包含一个Hash 阅读全文
posted @ 2020-05-29 22:44 CccccDi 阅读(161) 评论(0) 推荐(0) 编辑
  2020年4月26日
摘要: 公平性锁与非公平性锁 非公平性: 如果一个线程因为CPU时间全部被其他的线程抢走而无法获得CPU的执行时间,这种状态称之为饥饿,而该线程被称为“饥饿致死”,非公平锁就存在“饥饿”,因为线程得不到CPU的运行时间机会。 公平性: 所有的线程均能公平性的获取到执行的机会。 线程饥饿的原因: 高优先级的线 阅读全文
posted @ 2020-04-26 11:52 CccccDi 阅读(353) 评论(0) 推荐(0) 编辑
  2020年4月5日
摘要: Synchronized是独占锁,性能低,Lock借助JNI完成的高级锁实现。Lock接口实现的锁比synchronize的锁更加广泛,实现了更加灵活地操作,支持多个Condition对象。 Lock接口下提供的方法:void lock();void lockInterruptibly();cond 阅读全文
posted @ 2020-04-05 22:30 CccccDi 阅读(202) 评论(0) 推荐(0) 编辑
  2020年3月31日
摘要: 在这之前要有搭建好maven的环境,可以参考上一篇。https://www.cnblogs.com/128-cdy/p/12604298.html 1。 2。选择Modules 3。 4。 等待一会选择,Download to可以不用勾选,下载的jar会放在本地的jar仓库里,如果勾选了则会在该项目 阅读全文
posted @ 2020-03-31 21:43 CccccDi 阅读(8437) 评论(0) 推荐(0) 编辑
摘要: maven最新版本3.6.3的下载 链接:https://pan.baidu.com/s/12LPKkiE0x_Aq4S8qUnYa6g 提取码:7njx 下载完成解压后可以进行环境变量的配置。 1。新建一个MAVEN_HOME的变量名。 2。找到Path,新建一个%MAVEN_HOME%\bin的 阅读全文
posted @ 2020-03-31 13:23 CccccDi 阅读(426) 评论(0) 推荐(0) 编辑
  2020年3月30日
摘要: 该题目可以采用二分的思想,查找该元素。实现如下: private static String find(int[] arr,int num) { int left = 0; int right = arr.length - 1; while (left <= right){ if(num < arr 阅读全文
posted @ 2020-03-30 00:34 CccccDi 阅读(2749) 评论(0) 推荐(0) 编辑
  2020年3月29日
摘要: 该二维数组的特征是: a.每行中的整数从左到右按升序排列。 b.每行的第一个整数大于前一行的最后一个整数。 可以每行都进行二分查找(由于该数组的特征,所以可以先将要查找的数与本行的最后一个数据比较,若大于则直接进入下一行比较,增加效率,减少比较的次数),如果未找到则进入下一层,直到找完该二维数组。 阅读全文
posted @ 2020-03-29 23:26 CccccDi 阅读(326) 评论(0) 推荐(0) 编辑
  2020年3月24日
摘要: 悲观锁 假设是每次获取数据都认为会被其他线程修改,每次来操作数据(可读、可写)的时候都会加锁;悲观锁的实现是Synchronized。 悲观锁存在问题: 1、多线程竞争,引起性能问题 (锁的释放和获取需要上下文切换和调度等) 2、一个线程获取锁会导致其他线程被挂起(阻塞) 乐观锁 假设对数据的操作一 阅读全文
posted @ 2020-03-24 20:50 CccccDi 阅读(783) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 ··· 10 下一页