摘要: 一、什么是CAS 假设现在有多个线程想要操作同一个资源对象,很多人的第一反应就是使用互斥锁,但是互斥锁的同步方式是悲观的。 什么是悲观呢?简单来说就是操作系统将会悲观地认为如果不严格同步线程的调用,那么一定会产生异常,所以互斥锁将会将资源锁定只供一个线程调用而阻塞其他线程。因此这种同步机制也叫做悲观 阅读全文
posted @ 2021-02-15 17:56 songguojun 阅读(121) 评论(0) 推荐(0) 编辑
摘要: synchronized官方解释 翻译成中文: Synchronized同步方法可以支持使用一种简单的策略来防止线程干扰和内存一致性错误:如果一个对象对多个线程可见,则对该对象变量的所有读取或写入都是通过同步方法完成的。 简单就是说Synchronized的作用就是Java中解决并发问题的一种最常用 阅读全文
posted @ 2021-02-15 12:39 songguojun 阅读(20774) 评论(0) 推荐(1) 编辑
摘要: 优先队列和普通队列区别: 1. 普通队列:先进先出(FIFO)。 2. 优先队列:优先队列中出队列的顺序和乳队列的顺序无关,和队列中元素的优先级有关。 优先队列是贪心算法的重要组成部分,借助于优先队列贪心算法可以解决非常多的实际问题包括: 1. 旅行商TSP问题 2. 01背包问题 3. 霍夫曼编码 阅读全文
posted @ 2021-02-15 00:46 songguojun 阅读(742) 评论(0) 推荐(0) 编辑
摘要: 1. 单进程最大打开文件数限制 有时候会遇上socket/file: can‘t open so many files的问题,其实是Linux系统有文件句柄限制的,一般Linux系统限制单进程最大可以打开1024个文件,这是远远不能满足高并发需求的。 通过ulimit –a命令来查看系统的一些资源限 阅读全文
posted @ 2021-02-15 00:23 songguojun 阅读(263) 评论(0) 推荐(0) 编辑