大家好,我是坤哥 上周我在极客时间某个课程看到某个讲师在讨论 ConcurrentHashMap(以下简称 CHM)是强一致性还是弱一致性时,提到这么一段话 这个解释网上也是流传甚广,那么到底对不对呢,在回答这个问题之前,我们得想清楚两个问题 什么是强一致性,什么是弱一致性 上文提到 get 没有加锁,所以没法即时获取 put 的数据,也就意味着如果加锁就可以立即获取到 put 的值了?那么除了加锁之外,还有其他办法可以立即获取到 put 的值吗 强一致性与弱一致性 强一致性 首先我们先来看第一…
最近做项目,需要多word文档进行编辑并导出一个新的word,在最初的word编辑中留下特定的字符串用来替换,然后在本地生成一个新的word文档,并且不修改服务器中的word文档,这样才能保证服务器中的文件在下次使用的时候能正常使用. 代码: /// <summary> /// 读取出word文档中的内容后对word文档进行修改并保存在本地 /// </summary> /// <param name="jtmodel">实体类(在数据库中读取出来的…
一个关于 useState 的误解 本文写于 2020 年 11 月 17 日 前两天有人问了我一个问题,他有一段这样的代码: function App() { const [n, setN] = useState(0); return ( <div> <h1>{n}</h1> <button onClick={() => setN((x) => x + 1)}>+1</button> <button onClick={() =…
ConcurrentHashMap融合了Hashtable和HashMap二者的优势. Hashtable是做了线程同步,HashMap未考虑同步.所以HashMap在单线程下效率较高,Hashtable在多线程下同步操作能保证程序的正确性.  但是Hashtable每次执行同步操作都需要锁住整个结构. ConcurrentHashMap的出现就是为了解决Hashtable同步lock整个数据结构的问题.ConcurrentHashMap锁的方式是细颗粒度. ConcurrentHashMap将…
刚刚看了node.js文档里的一个小例子,就是用 node.js 写一个web服务器的小例子 上代码 (*^▽^*) //helloworld.js// 使用node.js写一个服务器 const http=require('http'); const hostname='127.0.0.1' const port=3000; const server = http.createServer((req,res)=>{ res.statusCode=200; res.setHeader('Cont…
Web项目中,很多时候须要实现将查询的数据集导出为Excel文档的功能,很多时候不希望在工程中添加对Office组件相关的DLL的引用,甚至有时候受到Office不同版本的影响,导致在不同的服务器上部署后功能受限,或和其它项目冲突,那么,使用这种简单粗暴的方式,可能会解决部分猿类灵长动物的烦恼忧愁. /// <summary> /// DataSet导出到Excel文件(多个Sheet) /// </summary> /// <param name="dataSet…
团体程序设计天梯赛代码.体现代码技巧,比赛技巧.  https://github.com/congmingyige/cccc_code…
补充一下: 上面的方法不行. 我的个人解决方法 出现这种问题的原因,我的是eclipse换了,工作目录还是用之前的那个 把build Automatically的钩去掉 假设我们是用之前的workspace工作空间名而出现上面的问题的话,把workplace改为workplace1 然后启eclipse选择工作目录选择workplace,打开之后里面应该是没工作项目的,然后再把workplace1文件的所有项目导入到workplace里…
凡是学习NSOperationQueue的人,都会遇到setMaxConcurrentOperationCount这个函数.在网上的许多博文中,都将setMaxConcurrentOperationCount解释为“设置线程池中的线程数”,我觉得这是一种以讹传讹的说法,相当不准确,容易误导初学者,至少我曾经就被误导过.实际上,NSOperationQueue 可以认为是线程池,但setMaxConcurrentOperationCount并不是设置在其中运行的线程数,看看官方文档: setMax…
mozilla中对 Object.assign 的解释如下地址: mozilla 其中有说到 注意, Object.assign 会跳过那些值为 null 或 undefined 的源对象. 一直以为是对象中如果是null 或者 undefined ,那么会不进行覆盖, 但是测试结果却是覆盖. 很是疑惑. 经询问以及查找, 发现是如下的例子,才不会进行覆盖 Object.assign({obj1: "objvalue"}, null); Object.assign({obj1: &qu…