代码之髓读后感——容器&并发】的更多相关文章

容器 单个地址存放单个数据,但是如果有多个数据,而这些数据互相关联,则我们更希望的是将他们能够更好的在内存中组织在一起.于是便出现了容器的概念. 在不同的语言中,容器的名称不同,性质各异.比如,C 语言中的数组.LISP 语言中的列表.Python 语言中的元组以及 Ruby 语言中的数组.即使是名字相同,在不同语言中表达的意思也可能不一样.比如,LISP 语言和 Haskell 语言中的列表,与 Java 语言和 Python 语言中的列表在内部构造上完全不同. 又由于所针对的问题不同(还是这…
title: 代码之髓读后感2.md date: 2017-07-08 17:33:11 categories: tags: Perl的设计者:Larry Wall在<Programming Perl>中提出,优秀的程序员有三大美德:懒惰,急躁和傲慢. 懒惰是因为为减少总的能量支出而不遗余力的努力. 急躁是因为无法忍受程序执行的低效. 傲慢是因为容不下错误. 语言的诞生 程序设计语言的出现就是为了解决各种各样的问题,而这些问题以现在的语言是无法更合适的处理. 于是乎,语言之于语言,就是目标问题…
面向对象 语言中的用语并不是共通的,在不同语言中,同一个用语的含义可能会有很大差别. C++的设计者本贾尼·斯特劳斯特卢普对类和继承给予了正面肯定,然而,"面向对象"这个词的发明者艾伦·凯(Alan kay,他同时也是 Smalltalk 语言的设计者)却持有不同的意见,他对类和继承持否定立场. 对于面向对象的理解 我们是怎样理解世界的呢?我们将生活中遇见的事物总结为特定的"物"的概念,它们就是诸如桌子.椅子.银行贷款.公式.人.多项式.三角形.晶体管之类的东西.我…
名字和作用域 为什么要取名 看着代码中遍地都是的变量,函数,或多或少的我们都应该想过,为什么会有这些名字呢? 我们知道,计算机将数据存储到对应的物理内存中去.我们的操作就是基于数据的.我们需要使用这些数据,所以一个问题就是如何寻找到这些数据.一个较为直接的方式就是为它起个名字. 联系现实生活中的,最典型的就是图书馆.一本本书,一块块数据.为了查找,我们使用的是对各个数据地址进行编码.一一映射到一组唯一的数据上,以此便于查找的唯一替代彼不便于查找的唯一. 仔细想来,这种替代的方法似乎和哈希函数的思…
前言 最近在调试EasyNetQ代码的时候发现里面有一段代码,就是IoC容器的简单实现,跟着他的代码敲了一遍,发现了奇妙之处.当然也是因为我才疏学浅导致孤陋寡闻了.他的思路就是通过动态调用构造函数生成对象,然后将对象保存,调用的时候进行单例调用,而且,代码中不会存在 new 字眼.所有实例对象的创建和映射都在容器中实现.当然,还是用第三方的容器比较稳妥,本文中只是很简单的一个示范.具体理解的是否正确,我也不敢说,只不过,能达到一些预期的效果,功能不够强大. 解析 首先,我们先添加几个接口.ISe…
1.今天被问一个问题:请问具体到PHP的代码层面,改善高并发的措施有哪些? 面对高并发问题我首先想到的是集群.缓存(apt.redis.mem.内存...),但具体到PHP代码层面除了想到队列.减少网络请求,想不到别的了,所以开了这个讨论贴,希望大神留下可行方案. 请问具体到PHP的代码层面,改善高并发的措施有哪些 >> php这个答案描述的挺清楚的:http://www.goodpm.net/postreply/php/1010000007299905/请问具体到PHP的代码层面改善高并发的…
一次项目代码重构-使用spring容器干掉条件判断 这是在一次公司项目中进行重构时,一些复杂业务时想到的一个去掉一些if else的办法.能够使代码逻辑更加清晰,减少一些业务上的耦合. 业务说明 我所在的是一个做保险的项目组,这次重构是针对其中的保费计算和核保的业务. 项目重构之前,在保费计算的接口中,有大量的条件判断语句来判断这次进行保费计算的产品是哪一个,然后调用该产品的保费计算方法.代码大致看起来就是这个样子: //产品编号 String product = "123123";…
第一节 同步容器.并发容器 1.简述同步容器与并发容器 在Java并发编程中,经常听到同步容器.并发容器之说,那什么是同步容器与并发容器呢?同步容器可以简单地理解为通过synchronized来实现同步的容器,比如Vector.Hashtable以及SynchronizedList等容器,如果有多个线程调用同步容器的方法,它们将会串行执行. 可以通过查看Vector.Hashtable等同步容器的实现代码,可以看到这些容器实现线程安全的方式就是将它们的状态封装起来,并在需要同步的方法上加上关键字…
一.同步容器: 1.Vector容器实现了List接口,Vector实际上就是一个数组,和ArrayList类似,但是Vector中的方法都是synchronized方法,即进行了同步措施.保证了线程安全.源码如下图: 可以看到这些方法都加了synchronized.即加了同步操作. 2.Hashtable集合.HashTable实现了Map接口,它和HashMap很相似,但是HashTable进行了同步处理,而HashMap没有源码如下: 可以看到HashTable的实现方法也用到了synch…
1. 概念 并发:在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任一个时刻点上只有一个程序在处理机上运行. 来源: 1. Linux 系统运行多个进程, 在同一时间, 不止一个进程能够试图使用你的驱动. 2. 大部分设备能够中断处理器; 中断处理异步运行, 并且可能在你的驱动试图做其他事情的同一时间被调用. 3. 几个软件抽象( 例如内核定时器,)也异步运行. 4.  Linux 可以在对称多处理器系统( SMP )上运行, 结果…