Android艺术开发探索--第二章:IPC机制(下) 我们继续来讲IPC机制,在本篇中你将会学习到 ContentProvider Socket Binder连接池 一.使用ContentProvider ContentProvider是Android中提供的专门用来不同应用之间数据共享的方式,从这一点来看,他天生就是适合进程间通信,和Messenger一样,ContentProvider的底层实现同样也是Binder,由此可见,Binder在Android系统中是何等的重要,虽然Conten…
章节介绍 这一章节主要学习java并发机制的底层实现原理.主要学习volatile.synchronized和原子操作的实现原理.Java中的大部分容器和框架都依赖于此. Java代码 ==经过编译==>Java字节码 ==通过类加载器==>JVM(jvm执行字节码)==转化为汇编指令==>CPU上执行. Java中使用的并发机制依赖于JVM的实现和CPU的指令. volatile初探 volatile是是轻量级的synchronized,它在多处理器开发中保证了共享变量的可见性.可见性…
章节介绍 主要包括 术语定义.处理器如何实现原子操作.Java如何实现原子操作: 原子(atomic)本意是 不能再进一步分割的最小粒子,“原子操作” 意为 不可被中断的一个或一系列操作. 术语定义 自己的理解: 缓存行:缓存的最小操作单位.注意,缓存与内存是不一样的. 比较并交换:结合上一篇中CAS操作的介绍进行理解.CAS操作需要输入两个数值,一个新值A,一个旧值B,在操作期间先比较旧值B有没有发生变化,没有发生变化,才交换,发生了变化,就不交换. CPU流水线:结合生产车间的流水线,一种设…
ThreadA__________     同步 ______________ 异步 ___________     异步 ThreadB__________         ______________ 后台进程 : 程序结束 ,则后台进程随之结束. 多个线程都可能访问,有共享,就要考虑线程安全. Timer : 开启新线程,  timerTask 如果访问程序中的数据,那么该数据的访问需要是线程安全的,简单方法:将线程安全封装在共享数据内部.timer:AtFixed是从上次开始时间算起.不…
章节介绍 本章节主要学习 Java SE 1.6 中为了减少获得锁 和 释放锁 时带来的性能消耗 而引入的偏向锁 和 轻量级锁,以及锁的存储结构 和 升级过程. synchronized实现同步的基础: Java中的每个对象都可以作为锁.具体有三种形式: (1)对于普通同步方法,锁是当前实例对象: (2)对于静态同步方法,锁是当前类的Class对象: (3)对于同步方法快,锁是Synchronized括号中配置的对象. 当一个线程试图访问同步代码块时,它首先必须得到锁,退出或者抛出异常时必须释放…
对于书评这件事情,我其实是不想写的,因为每个人都有自己的一个衡量标准,每个人眼中都有自己的哈姆雷特,是好是坏每个人都褒贬不一.如果对于书中的知识你都掌握了,你只是想把它作为一种知识串联的记忆体的话,那么你可能感兴趣的事整本书的知识框架和体系脉络,所以如果书中的知识具有连贯性,能够在你脑海中编织出你想要的记忆蓝图,那么我相信它对你来说就没那么好:如果你想把它作为打开新世界的大门,你想了解一下并发编程的奥妙,我相信它对你来说也是一本好书,能够拓展你的知识深度:如果你是面向面试来看它,它也是一本好书,…
第三十六~三十七章.搜索智能提示suggestion,附近地点搜索 作者:July.致谢:caopengcs.胡果果.时间:二零一三年九月七日. 题记 写博的近三年,整理了太多太多的笔试面试题,如微软面试100题系列,和眼下这个程序员编程艺术系列,真心觉得题目年年变,但解决问题的方法永远都是那几种,用心准备后,自会发现一切有迹可循. 故为更好的帮助人们找到工作,特准备在北京举办一系列面试&算法讲座.时间定为周末,每次一个上午或下午,受众对象为要找工作或换工作或对算法感兴趣的朋友,费用前期暂愿交就…
本文是我翻译<JavaScript Concurrency>书籍的第三章 使用Promises实现同步,该书主要以Promises.Generator.Web workers等技术来讲解JavaScript并发编程方面的实践. 完整书籍翻译地址:https://github.com/yzsunlei/javascript_concurrency_translation .由于能力有限,肯定存在翻译不清楚甚至翻译错误的地方,欢迎朋友们提issue指出,感谢. Promises几年前就在JavaS…
java并发编程笔记(三)--线程安全性 线程安全性: ​ 当多个线程访问某个类时,不管运行时环境采用何种调度方式或者这些进程将如何交替执行,并且在主调代码中不需要任何额外的同步或协同,这个类都能表现出正确的行为,那么就称这个类是线程安全的. 线程安全体现在三个方面: 原子性:提供了互斥访问,同一时刻只能有一个线程来对它进行操作 可见性:一个线程对主内存的修改可以及时的被其他线程观察到 有序性:一个线程观察其他线程中的指令执行顺序,由于指令重排序的存在,该观察结果一般杂乱无序. 原子性:Atom…
前言 可以将Java并发编程抽象为三个核心问题:分工.同步和互斥. 这三个问题的产生源自对性能的需求.最初时,为提高计算机的效率,当IO在等待时不让CPU空闲,于是就出现了分时操作系统也就出现了并发.后来,多核CPU出现,不同的任务可以同时独立运行,于是就出现了并行[分工].有了分工后,效率得到了很大的提升,但是为了更合理的安排以及控制任务的进行,就需要让进程之间可以通信[同步],让彼此知道进度的执行.分工进行提高了效率,但是却带来了多线程访问共享资源会冲突的问题.于是对共享资源的访问又需要串行…