编程Bug集】的更多相关文章

(基础)将“/”用于取余符号,导致非预想结果——1小时后才找到错误原因 9.16…
前言 CPU .内存.I/O设备之间的速度差距十分大,为了提高CPU的利用率并且平衡它们的速度差异.计算机体系结构.操作系统和编译程序都做出了改进: CPU增加了缓存,用于平衡和内存之间的速度差异. 操作系统增加了进程.线程,以时分复用CPU,进而均衡CPU与I/O设备之间的速度差异. 编译程序优化指令执行次序,使得缓存能够得到更加合理地利用. 但是,每一种解决问题的技术出现都不可避免地带来一些其他问题.下面这三个问题也是常见并发程序出现诡异问题的根源. 缓存--可见性问题 线程切换--原子性问…
如果你细心观察的话,你会发现,不管是哪一门编程语言,并发类的知识都是在高级篇里.换句话说,这块知识点其实对于程序员来说,是比较进阶的知识.我自己这么多年学习过来,也确实觉得并发是比较难的,因为它会涉及到很多的底层知识,比如若你对操作系统相关的知识一无所知的话,那去理解一些原理就会费些力气.这是我们整个专栏的第一篇文章,我说这些话的意思是如果你在中 间遇到自己没想通的问题,可以去查阅资料,也可以在评论区找我,以保证你能够跟上学习进度. 你我都知道,编写正确的并发程序是一件极困难的事情,并发程序的…
以前古老的DOS操作系统,是单进行的系统.系统每次只能做一件事情,完成了一个任务才能继续下一个任务.每次只能做一件事情,比如在听歌的时候不能打开网页.所有的任务操作都按照串行的方式依次执行. 这类服务器缺点也很明显,等待操作的过长,无法同时操作多个任务,执行效率很差. 现在的操作系统都是多任务的操作系统,比如听歌的时候可以做打开网页,还能打开微信和朋友聊天.这几个任务可以同时进行,大大增加执行效率. 并发提高效率 一个完整服务器,都有CPU.内存.IO,三者之间的运行速度存在明显的差异: CPU…
由于CPU.内存.I/O 设备的速度差异,为了合理利用 CPU 的高性能,平衡这三者的速度差异,计算机体系机构.操作系统.编译程序都做出以下处理: 1. CPU 增加了缓存,以均衡与内存的速度差异: 2. 操作系统增加了进程.线程,以分时复用 CPU,进而均衡 CPU 与 I/O 设备的速度差异: 3. 编译程序优化指令执行次序,使得缓存能够得到更加合理地利用.    源头之一:缓存导致的可见性问题   在单核时代,所有的线程都是在一颗 CPU 上执行,CPU 缓存与内存的数据一致性容易解决.因…
使用ORM框架ORMLITE有一段时间,今天在操作一个对象的时候,重新运行报错如下: Must specify one of id, generatedId, and generatedIdSequence with Id 翻译:意思大概也就是必须要有其中一个  id  / generatedId / generatedIdSequence 再上下我的对象的源码: @DatabaseField(columnName = PaymentTempUploadTable.COLUMN_ID, id =…
先来回顾一下未决信号集是怎么回事. 信号从产生到抵达目的地,叫作信号递达.而信号从产生到递达的中间状态,叫作信号的未决状态.产生未决状态的原因有可能是信号受到阻塞了,也就是信号屏蔽字(或称阻塞信号集,mask)对应位被置1.阻塞信号集和未决信号集均是由内核维护的,整个过程如下图示: 我们有时需要屏蔽某个信号,就需要去修改阻塞信号集.那么,我们该如何修改阻塞信号集?系统提供的一个方法是,我们先创建一个跟阻塞信号集一样的集合,再利用它去修改阻塞信号集. 系统提供了一系列的信号集设定函数.这些函数如下…
1. Spring MVC 双请求问题 viewresolver一定要放在servlet-dispatcher.xml里,否则会导致在请求成功后以后渲染页面,然后又发一次请求的状况,最后导致页面无法显示.例如以下Controller方法 @RequestMapping("loginPage") public String loginPage() { return "loginView"; } 会造成如下log输出 00:31:30.836 [http-bio-808…
一.Flash builder 报错 当导入3.0的项目时运行出现如下错误: 进程已终止,没有建立到调试器的连接.error while loading initial content 启动命令详细信息: "C:\Program Files\Adobe\Adobe Flash Builder4\sdks\flex_sdk_4.5.0.19786\bin\adl.exe" -runtime "C:\ProgramFiles\Adobe\Adobe Flash Builder4\…
空语句 Kotlin 语言中的空语句有 {} Unit when (x) { 1 -> ... 2 -> ... else -> {} // else -> Unit } When 表达式 使用不带判断条件的 when 表达式来改写多路分支 val v = if (x < y) 1 else if (x == y) 2 else 3 val v = when { x < y -> 1 x == y -> 2 else -> 3 } 使用带判断条件的 w…