成员变量的10种命名方式
摘要:【成员变量的10种命名方式】1、resourceService。 特点 1)驼峰命名,首字符小写。2、StageType 特点 1)驼峰命名,首字符大写。3、fAddHPPercent。 特点 1)类型,小写 + 2)驼峰命名,首字符大写。4、_lightMapAssetIndex。 特点 ...
阅读全文
尾递归
摘要:【尾递归】 如果一个函数中所有递归形式的调用都出现在函数的末尾,我们称这个递归函数是尾递归的。当递归调用是整个函数体中最后执行的语句且它的返回值不属于表达式的一部分时,这个递归调用就是尾递归。尾递归函数的特点是在回归过程中不用做任何操作,这个特性很重要,因为大多数现代的编译器会利用这种特点自动生成...
阅读全文
how to deal with EINTR fault
摘要:【how to deal with EINTR fault】 EINTR:interupted error。是指一个调用被信号给中断,对于同步的耗时调用来说,这个操作常见,譬如select、read、write。SocketServer.py中有一个_eintr_retry()函数提供了解决此种问...
阅读全文
Multithread之为什么spinlock必须是volatile?
摘要:【Multithread之为什么spinlock必须是volatile?】 1、编译器的优化 在本次线程内,当读取一个变量时,为提高存取速度,编译器优化时有时会先把变量读取到一个寄存器中;以后再取变量值时,就直接从寄存器中取值; 当变量值在本线程里改变时,会同时把变量的新值copy到该寄存器中,以便保持一致 当变量在因别的线程等而改变了值,该寄存器的值不会相应改变,从而造成应用程序读取的值和实际的变量值不一致 当该寄存器在因别的线程等而改变了值,原变量的值不会改变,从而造成应用程序读取的值和实际的变量值不一致 2、如果spinlock为非volatile,那么当一个线程释放spinlo...
阅读全文