粗略看完<Java Concurrency in Practice>这部书,确实是多线程/并发编程的一本好书.里面对各种并发的技术解释得比较透彻,虽然是面向Java的,但很多概念在其他语言的并发编程中,也可以用到.因此,开始写下其读书笔记,归纳总结. 闲话少说,从第十章开始,先上思维导图: 本章的重点,是死锁以及死锁的分析和避免方法. 10.1.1 锁的顺序产生死锁: public class WorkerThread implements Runnable{ private LeftRigh…
这一系列文章感觉写的不好,思维跨度很大,原本是由于与<Angularjs in action>有种相见恨晚而激发要写点读后感之类的文章,但是在翻译或是阐述的时候还是会心有余而力不足,零零总总的写了<Angularjs in action>读书笔记的前三篇.渐渐明白,将新知识搞懂是一门本事,而将自己明白的share出去并让别人也明白更是一门学问.几篇翻译下来,感觉有些苍白,有网友给建议说是真枪实战的做点东西,结合代码更有说服力.想想也是,纸上得来终觉浅,绝知此事要躬行.于是乎就有了&…
目录 导致线程不安全的原因 什么是线程安全 不可变 绝对线程安全 相对线程安全 线程兼容 线程对立 互斥同步实现线程安全 synchronized内置锁 锁即对象 是否要释放锁 实现原理 啥是重进入? ReentrantLock(重入锁) API层面的互斥锁 等待可中断 公平锁 锁绑定 本篇参考许多著名的书籍,形成读书笔记,便于加深记忆. 前文传送门:Java并发读书笔记:JMM与重排序 导致线程不安全的原因 当一个变量被多个线程读取,且至少被一个线程写入时,如果读写操作不遵循happens-b…
一.线程的启动 1. 每个c++程序至少有一个线程,是由C++ runtime启动的 2. 在c++11中,通过一个std::thread 对象启动线程.可以向std::thread传递一个函数,或者实现了调用操作符的类实例, 或者一个lambda表达式. // 方法一 void do_some_work(); std::thread my_thread(do_some_work); // 方法二 class background_task { public: void operator()()…
Thread Safety线程安全 线程安全编码的核心,就是管理对状态(state)的访问,尤其是对(共享shared.可变mutable)状态的访问. shared:指可以被多个线程访问的变量 mutable:指在其生命周期内,它的值可被改变 通常,一个对象Object的状态state就是他的数据data,存储于状态变量(state variables)如实例对象或者静态变量,以及他所依赖的其他对象. Java中最常用的同步机制是使用Synchronized关键字,其他还有volatile变量…
前言 学习C#两个多月了,像当初实习做PHP开发一样,也是由着一个个Feature需求,慢慢掌握了很多相关的编程技巧.本次主要记录下学习C# 多线程的相关知识. 参考书籍:<Csharp高级编程(第7版)> 1.使用线程的原因 不过运行多个线程也要注意一些问题:他们可以同时运行,但是如果线程访问相同的数据,就很容易出问题,必须实现同步机制.  2.理解线程 线程是程序中独立的指令流.C#编写的程序都有一个入口点(即Main()方法),程序从该方法的第一条开始执行,直到方法返回为止.这种程序结构…
第二十五章 线程基础 2014-06-28 25.1 Windows为什么要支持线程 25.2 线程开销 25.3 停止疯狂 25.6 CLR线程和Windows线程 25.7 使用专用线程执行异步的计算限制操作 25.8 使用线程的理由 25.9 线程调度和优先级 25.10 前台线程和后台线程 参考 25.1 Windows为什么要支持线程 返回 Microsoft设计OS内核时,他们决定在一个进程(process)中运行应用程序的每个实例.进程不过是应用程序的一个实例要使用的资源的一个集合…
正文 一.线程安全 当多个线程访问一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方进行任何其他的协调操作,调用这个对象的行为都可以获得正确的结果,那这个对象是线程安全的. 1.Java 语言中的线程安全 按线程安全的"安全程度"由强至弱排序,可以将多个线程的共享数据分为 5 类:不可变.绝对线程安全.相对线程安全.线程兼容和线程对立. (1)不可变 不可变的对象一定是线程安全的,无论是对象的方法实现还是方法的调用者,都不需要再采取任何…
个人感觉<Angularjs in action>这本书写的很好,很流畅,循序渐进,深入浅出,关键是结合了一个托管于Github上的实例讲解的,有代码可查,对于初学者应该是个不错的途径.(不是打广告)其实书早已经看完一遍,脑瓜子里面已经存储了一些module.controller.directive.scope等等这些概念,但是怎么把这些东西串起来,用起来,不动手,还是不能检验看书的效果.所以从这篇就来结合自己的实操经验来分享下自己是如何消化(囫囵吞枣)这些概念和设计理念的. 设计初衷是要在原…
今天我们来818<angularjs in action>的第三章controller和view. 1.Big Picture概览图 View是angularjs编译html后呈现出来的,需要编译的是controller中的定义的属性和方法以及directive中定义的指令. View和controller是独立开来的,他们之间的纽带就是图中间的胶水——scope.Controller负责向scope中提供属性和方法,便于和view层面的html进行交互. 方便起见,我们通常将controll…