全部商品分类

您现在的位置: 全部商品分类 > 电子电脑 > 计算机技术 > 程序与语言

并发编程理论与实践

  • 定价: ¥49
  • ISBN:9787302516781
  • 开 本:16开 平装
  •  
  • 折扣:
  • 出版社:清华大学
  • 页数:277页
  • 作者:张杨
  • 立即节省:
  • 2019-07-01 第1版
  • 2019-07-01 第1次印刷
我要买:
点击放图片

导语

  

内容提要

  

    本书在Java编程语言的基础上,对并发编程的相关概念、基本原理、方法和技术进行了详细讲解,内容涉及线程同步和障栅、线程间通信、执行器、Fork/Join框架和并行流处理等内容。本书在讲解并发编程基本知识的同时,大量使用实例进行演示,力求做到内容透彻。本书内容先进翔实、知识结构合理、例题丰富、深入浅出,既适合作为普通高校和工程类院校学生学习高性能程序设计的教材,又适合作为IT领域人员学习Java并发编程技术的工具书,同时也可以作为那些需要掌握高性能计算技术的人员的自学参考用书。

作者简介

    张杨,男,1980年1月生。博士,副教授,硕士生导师,“石家庄青年五四奖章”获得者,河北省“三三三人才工程”第三层次人选,中国计算机学会会员,中国计算机学会高性能计算专业委员会委员、分布式计算与系统专业委员会委员。2013年6月毕业于北京理工大学计算机软件与理论专业,获工学博士学位。曾受国家留学基金委委派,以访问学者身份前往美国普渡大学西拉法叶分校访问一年。现任教于河北科技大学信息科学与工程学院计算机系。主要研究兴趣包括并行程序设计和性能优化、软件重构、并发软件分析、面向切面编程等。

目录

第1章  绪论
  1.1  概述
  1.2  概念和术语
    1.2.1  并发与并行
    1.2.2  串行执行和顺序执行
    1.2.3  超线程
    1.2.4  加速比
  1.3  Java并发方面的特性
  1.4  并发/并行程序设计的方法
    1.4.1  分治方法
    1.4.2  流水线
    1.4.3  消息传递
  1.5  并发程序的评判标准
  1.6  Java内存模型
  1.7  程序的运行说明
第2章  线程
  2.1  进程与线程
  2.2  线程的创建
    2.2.1  继承Thread类
    2.2.2  实现Runnable接口
    2.2.3  两种方法的比较
    2.2.4  相关说明
  2.3  线程的属性
    2.3.1  线程标识符
    2.3.2  线程名
    2.3.3  线程状态
    2.3.4  线程的优先级和调度
    2.3.5  守护线程
  2.4  线程管理
    2.4.1  join()方法
    2.4.2  sleep()方法
    2.4.3  yield()方法
    2.4.4  interrupt()方法
    2.4.5  其他方法
  2.5  线程分组
  2.6  线程数目的确定
  2.7  线程本地化
  2.8  带返回值的线程
    2.8.1  Callable接口
    2.8.2  Future接口
    2.8.3  Callable与Runnable的比较
  2.9  案例分析
  小结
  习题
第3章  线程同步控制
  3.1  为什么要使用同步控制
  3.2  基本概念
    3.2.1  数据竞争
    3.2.2  临界区
    3.2.3  监视器
    3.2.4  阻塞和非阻塞
    3.2.5  线程安全与线程不安全
  3.3  锁
    3.3.1  同步锁
    3.3.2  可重入锁
    3.3.3  读写锁
    3.3.4  邮戳锁
    3.3.5  几种锁机制的比较
    3.3.6  锁的不足之处
    3.3.7  减少锁竞争的方法
    3.3.8  死锁和活锁
  3.4  volatile变量
  3.5  原子操作
    3.5.1  基本类型的原子类
    3.5.2  一般引用类型的原子类
    3.5.3  ABA问题
    3.5.4  扩展的原子引用类型
    3.5.5  原子操作数组类
  小结
  习题
第4章  线程间通信
  4.1  等待集合
  4.2  wait()/notify()/notifyAll()方法
    4.2.1  wait()方法
    4.2.2  notify()方法
    4.2.3  notifyAll()方法
    4.2.4  实例
  4.3  条件变量
    4.3.1  await()方法
    4.3.2  signal()方法
    4.3.3  signalAll()方法
    4.3.4  实例
  习题
第5章  线程同步障栅
  5.1  障栅
  5.2  倒计时门闩
  5.3  信号量
  5.4  同步队列
  5.5  交换器
  5.6  阶段化处理
  习题
第6章  线程执行器
  6.1  线程池
    6.1.1  Executor接口
    6.1.2  ExecutorService接口
    6.1.3  ThreadPoolExecutor类
    6.1.4  工厂类Executors
    6.1.5  使用线程执行器处理没有返回值的线程
  6.2  固定数目的线程执行器
  6.3  使用线程执行器处理有返回值的线程
  6.4  延迟执行、周期性执行的执行器
    6.4.1  ScheduledExecutorService接口
    6.4.2  ScheduledFuture接口
    6.4.3  举例
  6.5  取消任务的执行
  6.6  任务装载和结果处理的分离
  6.7  管理被拒绝的任务
第7章  Fork/Join框架
  7.1  概述
  7.2  相关知识
    7.2.1  负载均衡
    7.2.2  分治方法
    7.2.3  工作窃取算法
  7.3  Fork/Join框架的编程模式
  7.4  ForkJoinPool类
    7.4.1  ForkJoinPool的创建
    7.4.2  ForkJoinPool的使用
  7.5  Fork/Join框架中的任务
    7.5.1  任务的创建
    7.5.2  任务的运行方式
    7.5.3  任务的取消
  7.6  Fork/Join框架的限制
  7.7  几种线程机制的比较
  习题
第8章  流处理
  8.1  Lambda表达式
    8.1.1  Lambda表达式的定义
    8.1.2  Lambda表达式的使用
  8.2  函数式接口Predicate
  8.3  流
    8.3.1  流简介
    8.3.2  创建流
    8.3.3  流的操作
第9章  自定义并发类
  9.1  自定义线程工厂
  9.2  自定义线程池
  9.3  在执行器中使用自定义的线程工厂
  9.4  自定义周期性任务
  9.5  自定义与Fork/Join框架相关的并发类
    9.5.1  ForkJoinWorkerThread类
    9.5.2  ForkJoinPool.ForkJoinWorkerThreadFactory接口
    9.5.3  自定义Fork/Join框架中的线程
    9.5.4  自定义任务
  9.6  自定义同步类
    9.6.1  自定义锁
    9.6.2  自定义原子操作
  习题
第10章  线程安全的集合
  10.1  线程安全的双端队列
  10.2  线程安全的哈希表
  10.3  线程安全的跳表
  10.4  随机数产生
  10.5  并行数组
第11章  多线程程序的性能和测试
  11.1  性能
  11.2  可伸缩性
11.3多线程程序的测试
第12章  面向切面技术在并发编程中的应用
  12.1  相关知识
    12.1.1  面向切面编程
    12.1.2  Java注释接口
  12.2  类方法的并发执行
    12.2.1  问题的提出
    12.2.2  并行库
    12.2.3  基于面向方面技术的并行库易用性优化
    12.2.4  实验
    12.2.5  小结
  12.3  实现被标记的类方法的并发执行
  12.4  使用面向切面技术分离并发关注点
    12.4.1  问题演示
    12.4.2  重构框架
    12.4.3  实验评估
  习题