Java并发多线程学习笔记 标签(): java 多线程 并发编程 艺术 原子操作的实现原理 #1、术语 比较并交换 compare and swap(一个新值和旧值,比较旧值有没有发生变化,如果没有发生变化则交换成新值) CPU流水线 CPU pipeline -- 内存顺序冲突 Memory order violation -- 一般由假共享内存引起,出现冲突时,cpu流水线必须清空 #2、处理器如何实现原子操作 32位IA-32处理器使用缓存加锁或总线加锁的方式来处理多处理器之间的原子操作 一般情况下处理器会自动保证基本内存操作的原子性,但是复杂的内存操作则并不能自动保证原子性。比如跨总线宽度,跨多个缓存行和跨页表的访问。 处理器提供总线锁定和缓存锁定两个机制来保证复杂内存操作的原子性。 ##1.总线锁 总线锁就是使用处理器提供的一个LOCK#信号,当一个处理器在总线上输出此信号时,其他处理器的请求将被阻塞,那该处理器可以独占共享内存。 ##2.缓存锁 频繁使用的内存会缓存在处理器的L1,L2,L3高速缓存里 缓存锁定是指内存区域如果被缓存在处理器的缓存行中,并且在lock操作期....
问题描述 今日测试微信客服消息接口、发过去之后微信发给用户的是乱码,Google了一下,解决办法很多,但是都不能解决我的问题。我用的是Apache的httpClient。 之前一直是乱码的代码: entity = new StringEntity(JSON.toJSONString(postForm)); entity.setContentEncoding(StandardCharsets.UTF_8.toString()); entity.setContentType(ContentType.APPLICATION_JSON.getMimeType()); 我是用了utf-8编码,ContentEncoding是utf-8,但是还是乱码。。。。经过一番尝试,map转json的时候编码可能发生了变化。 我把代码这样写了一下,StringEntity()的时候也加了一下编码。问题解决了。 entity = new StringEntity(JSON.toJSONString(postForm), "UTF-8"); entity.setContentEncoding(StandardC....
Git命令 标签(空格分隔): git co 是checkout的意思,配置了别名。 ##1. 把远程没有拉取过的分支拉取到本地 git co master // 会把远程的master拉到本地,并且建立关联 ##2. 创建本地分支并推送到远程 1. git co -b test // 创建本地分支test 2. git co -b test // 创建本地分支test 3. git push origin wei // 把本地分支推到远程 ##3. 本地分支和远程分支建立关联 git push --set-upstream origin test // 当前分支为test ##4. 把本地的某个分支提交到远程某个分支 git ps origin test:test // 把本地的test提交到远程test ##5. 把远程分支拉到本地 git checkout origin/remoteName -b localName ##6. 删除远程一个分支 git push origin :wei // 删除远程分支wei ##7. Git add 撤销 执行了Git a....
前言 今天在mac上要解压一个rar格式的文件,但是mac默认不支持解压rar格式文件。自己捣腾了一番 安装过程 进入rarlab下载RAR 5.50 beta 3 for Mac OS 打开Mac终端,在文件的同级目录执行解压缩命令:tar xvfz rarosx-5.2.b1.tar进行解压。如果解压不了请使用sudo 进入刚刚解压的rar目录中,cd /rar 在rar目录下使用如下命令进行安装 sudo install -c -o$USER unrar usr/local/bin sudo install -c -o$USER rar usr/local/bin 解压与压缩 unrar x filename.rar #解压 rar a archivename.rar filename #压缩 end