Java并发编程实战的笔记(63)

>我来写笔记

按有用程度 按页码先后 最新笔记

  • Sam哥哥

    Sam哥哥 (运动是所有事情的基本)

    1、内置锁是保证操作原子性的一种手段。 2、被synchronize包住的代码块被一个锁保护着,进入代码块的线程必须获得锁才能进入。 默认情况下,如果不为synchronize关键字指定对应的锁的话,synchronize就以所属的对象作为锁 3、当使用synchronize的时候,如果另外一个线程没法获得锁,它就只能等待或者阻塞, 由此会带来上下文切换的开销,CPU利用率很低。

    2017-02-03 19:21   2人喜欢

  • 红色有角F叔

    红色有角F叔 (次元の呪い)

    对于计算密集的任务,在拥有 N 个处理器的系统上,当线程池大小为 N+1 时,通常能实现最优的利用率。(即使当计算密集型的线程偶尔由于页缺失故障或者其它原因而暂停时,这个“额外”的线程也能确保 CPU 的时钟周期不会被浪费。)对于包含 I/O 操作或者其它阻塞操作的任务,由于线程并不会一直执行,因此线程池的规模应该更大。 计算每个任务对该资源的需求量,然后用该资源的可用总量除以每个任务的需求量,所得结果就是线程池...   (6回应)

    2014-05-31 12:32   1人喜欢

  • 红色有角F叔

    红色有角F叔 (次元の呪い)

    当满足以下条件时,对象才是不可变的: - 对象创建以后其状态就不可修改 - 对象的所有域都是 final 类型 - 对象时正确创建的(在对象的构造期间,this 引用没有逸出) 从技术上来看,不可变对象并不需要将其所有的域都声明为 final 类型,例如 String 就是这种情况,这就要对类的良性数据竞争情况做精确的分析,因此需要深入理解 Java 的内存模型。... 自己在编码时不要这么做。 没错,内存模型并不是为业务程序员准备..

    2014-05-09 00:07   1人喜欢

  • 红色有角F叔

    红色有角F叔 (次元の呪い)

    加锁机制既可以确保可见性又可以确保原子性,而 volatile 变量只能确保可见性。 当且仅当满足以下所有条件时,才应该使用 volatile 变量: - 对变量的写入操作不依赖变量的当前值,或者你能确保只有单个线程更新变量的值。 - 该变量不会与其它状态变量一起纳入到不变性条件中。 - 在访问变量时不需要加锁。   (20回应)

    2014-05-07 09:42   1人喜欢

  • yatasoft

    yatasoft

    8线程池的使用 解耦任务和执行策略---Executor 以下任务不太适用线程池,任务不独立,有依赖外部,线程安全依赖线程封闭技巧的任务,对响应时间敏感的任务,使用ThreadLocal的任务

    2013-01-14 14:59   1人喜欢

  • 远在天边ls

    远在天边ls

    执行任务 /代码内容已省略/

    2012-05-23 22:19   1人喜欢

  • Gimo

    Gimo

    Netty权威指南第2章的伪异步I/O创建Server用到了ExecutorService、ThreadPoolExecutor和ArrayBlockingQueue这三个与线程池相关的类自定义了一个线程池。 不是很懂,所以又来看一遍《Java并发编程实战》的线程池这一章。 Executor作用:将任务的提交与任务的执行解耦开来。 ThreadLocal 使每一个线程都有某个变量的一个私有版本。 感觉这本书完全是一本工具书,用来在需要的时候查询解决问题,因为它事无巨细地写了很多东西,而且...

    2017-09-09 16:27

  • zmd_str

    zmd_str (Just Do It !)

    在java类库中,任务执行的主要抽象对象不是Thread,而是Executor

    2017-03-03 09:09

  • zmd_str

    zmd_str (Just Do It !)

    两种通过线程执行任务的策略:1.把所有任务放在单个线程中串行执行;2.将每个任务放在各自的线程中执行 将所有任务都放在一个线程中,理论上是正确的,但实际生产环境中的执行性能很糟糕,因为他每次只能处理一个请求。 为每个任务分配一个线程,也有缺陷,尤其当需要创建大量线程时 线程生命周期的开销非常大; 资源消耗大,尤其内存; 稳定性,因为可创建线程的数量有一个限制,如果破坏了这个限制,将抛出OutOfMemoryError。

    2017-03-02 09:05

  • zmd_str

    zmd_str (Just Do It !)

    同步工具类主要介绍了:闭锁、信号量和栅栏,理解的不多,决定暂时越过部分内容,明天开始第6章。 这些同步工具类都封装了状态,通过状态来协调各个线程。 闭锁可以看作一扇门,当准备工作OK后,大门开启,多个线程同时开始执行任务; 信号量可以标识一定的数量,连接池有应用,它有一个许可,在获取连接时,获取许可,归还连接后,释放许可,可以通过它来构造有界容器。 栅栏是等待线程操作,所有线程到达一个状态后,打开栅栏...

    2017-03-01 09:03

<前页 1 2 3 4 5 6 7 后页>

笔记是你写在书页留白边上的内容;是你阅读中的批注、摘抄及随感。

笔记必须是自己所写,不欢迎转载。摘抄原文的部分应该进行特殊标明。

Java并发编程实战

>Java并发编程实战