moon java 并发的基础知识  以编程思想的第21章为总体概览及问题

    并发    (线程的可视化)

   21.1并发的多面性:“速度”“设计的可管理性”

             21.1.1更快的执行:阻塞、  事件驱动的编程、函数型语言、线程机制

             21.1.2改进代码的设计:

  21.2 基本的线程机制:

             21.2.1定义任务:      Runnable接口、Run()方法、Thread.yield()、线程调度器、main()线程

             21.2.2Thread类:    Thread构造器、Thread对象的start()方法、

              练习

             21.2.3使用Executor:java.util.concurrent包以及包中的执行器、ExecutorService 具有服务生命周期的Executor、

                                         Executor方法有静态动态之分么:、shutdown()方法、FixedThreadPool、CashedThreadPool、

                                         SingleThreadExecutor

             21.2.4从任务中产生的返回值:

                                          Callable接口、call()方法、ExecutorService.submit()方法、Future对象、isDone()方法、get()方法

             21.2.5休眠:             sleep()方法、InterruptedException异常、TimeUnit类、睡眠(阻塞)

              练习

             21.2.6优先级:          线程的优先级、死锁、getPriority()、setPriority()方法、Thread.toString()方法、

                                          Thread.currentThread()方法、关键字volatile、MAX_PRIORITY、NORM_PRIORITY、MIN_PRIORITY

             21.2.7让步:             yield()、与sleep()区别

             21.2.8后台线程:        main()线程性质、后台线程(daemon)、setDaemon()方法、isDaemon()方法、子线程、

             练习

             21.2.9编码的变体:      getName()方法

             21.2.10术语:            

             21.2.11加入一个线程:  join()方法、join()方法的中断:interrupt()方法 、 isInterrupt()方法

             21.2.12创建有响应的用户界面:

                                           怎样才算是有响应的用户界面

             21.2.14捕获异常:        try-catch语句块、Thread.UncaughtExceptionHandler接口、

                                            Thread.UncaughExceptionHandler.uncaughtException()方法

 21.3共享受资源: 

             21.3.1不正确的访问资源: 

             21.3.2解决共享资源竞争:互斥量(mutex)、序列化访问共享资源、上锁、解锁、关键字synchronized、监视器、同步规则、

                                             使用显式的Lock对象、 java.util.concurrent.locks、try—finally                            单词翻译capture

             21.3.3原子性与易变性:     原子操作、long和double、线程任务的可视化指什么、修改 

             21.3.4原子类:             AtomicInteger、AtomicLong、AtomicReference原子性变量类、

                                             boolean  compareAndSet(expectedValue,updateValue)方法提供原子性条件的更新操作

             21.3.5临界区:             临界区(critical session)、同步控制块、模块方法、线程安全怎么判别、模板方法

             21.3.6在其他对象上同步:

             21.3.7线程本地存储:     线程本地存储、java.lang.ThreadLocal类

 21.4终结任务:                         cancel()、iscancel()

             21.4.1装饰性花园:       

             21.4.2在阻塞时终结:      线程状态: 新建、就绪、阻塞、死亡、

                                              进入阻塞状态::

             21.4.3中断:                Thread类中的interrupt()方法、Executor的shutdownNow()方法、中断的类型

             练习

                                              被互斥所阻塞

             21.4.4检查中断:           interruptException异常、Thread.interrupted()方法

 21.5线程之间的协作:                  任务之间的握手、Condition对象的await()/signal()方法 、Object的wait()/notify()方法

             21.5.1wait()与notifyALl():

              练习

             21.5.6错失的信号:            <Setup condition for T2>

             21.5.3生成者与消费者:      使用显式的Lock和Condition对象

             21.5.4生产者—消费者与队列:java.util.concurrent.BlockongQueue接口、无届队列LinkedBlockingQueue、ArrayBlockingQueue

              练习

                                                  吐司BlockingQueue

               练习

              21.5.5任务间使用管道进行输入/输出

                                                 PipedWriterlei/PipedReader类

 21.6死锁:                                  死锁发生的条件:

 21.7新类库中的构件:                     java.util.concurrent

              21.7.1CountDownLatch: CountDownLatch对象、countDown()方法、CyclicBarrier、

                                                 类库的线程安全   TaskPortion/TaskPortion包含的Random对象、Random.nextInt()是线程安全的其它的

              21.7.2CyclicBarrier:       适用于你希望创建一组任务,他们并行的执行工作,然后再进行下一个步骤之前等待,直至所有任务都完成、它使得

                                                 所有的并行任务都在栅栏处列队,因此可以一致的向前移动;和join() 方法的区别、和CountDownLatch的区别

                                                 栅栏动作

              21.7.3 DelayQueue           这是一个无界的BolckingQueue,用于放置Delayed接口对象,Delayed接口、Poll()方法

              21.7.4PriorityBlockingQueue:很基础的优先级队列,具有可阻塞的读取操作

              21.7.5使用ScheduledExecutor的温度控制器: 

                                                  ScheduledExecutor、scheduledThreadPoolExector、schedule()方法、scheduleFixedRate()方法、

              21.7.6 Semaphore            对象池、正常的锁有哪两种:concurrent.locks/synchronized  、计数信号量

              21.7.7Exchanger

 

 21.8仿真

              21.8.1银行出纳员仿真

              21.8.2饭店仿真

              21.8.3分发工作

21.9性能调优:

              21.9.1 比较各种互斥技术:     synchronized/Lock/Atomic、  模板方式设计模式       翻译Accumulate

              21.9.2 免锁容器                  CopyOnWriteArrayList         CopyOnWriteArraySet、ConcurrenHashMap、ConcurrentLinkedQueue

                                                    乐观锁   containerInitializer()/                duration翻译

                                                     比较各种Map实现:synchronizedHashMap/ConcurrentHashMap

              21.9.3乐观加锁

              21.9.4ReadWriteLock

21.10活动对象:           不连接对象、  活动对象:

                                                                      

                                                  

                                                

你可能感兴趣的:(moon java 并发的基础知识  以编程思想的第21章为总体概览及问题)