<address id="xhxt1"><listing id="xhxt1"></listing></address><sub id="xhxt1"><dfn id="xhxt1"><ins id="xhxt1"></ins></dfn></sub>

    <thead id="xhxt1"><dfn id="xhxt1"><ins id="xhxt1"></ins></dfn></thead>

    第三章-线程同步工具(引言)

    声明:本文是《 Java 7 Concurrency Cookbook 》的第三章, 作者: Javier Fernández González 译者:郑玉婷

    3
    线程同步工具

    章节提要:

    并发地访问资源的控制
    并发地访问多个副本资源的控制
    等待多个并发事件
    在一个相同点同步任务
    并发的阶段性任务的运行
    并发地阶段性任务的阶段改变的控制
    在并发任务间改变数据

    介绍

    在第二章基本的线程同步中,我们学习了同步和critical section的内容?;旧?,当多个并发任务共享一个资源时就称为同步,例如:一个对象或者一个对象的属性。访问这个资源的代码块称为:临界区。

    如果机制没有使用恰当,那么可能会导致错误的结果,或者数据不一致,又或者出现异常情况。所以必须采取java语言提供的某个恰当的同步机制来避免这些问题。

    在第二章,基本的线程同步中,我们学会了以下2个同步机制:

    • 关键词同步
    • Lock接口和它的实现类们:ReentrantLock, ReentrantReadWriteLock.ReadLock, 和 ReentrantReadWriteLock.WriteLock

    在此章节,我们将学习怎样使用高等级的机制来达到多线程的同步。这些高等级机制有:

    • Semaphores: 控制访问多个共享资源的计数器。此机制是并发编程的最基本的工具之一,而且大部分编程语言都会提供此机制。
    • CountDownLatch: CountDownLatch 类是Java语言提供的一个机制,它允许线程等待多个操作的完结。
    • CyclicBarrier: CyclicBarrier 类是又一个java语言提供的机制,它允许多个线程在同一个点同步。
    • Phaser: Phaser类是又一个java语言提供的机制,它控制并发任务分成段落来执行。全部的线程在继续执行下一个段之前必须等到之前的段执行结束。这是Java 7 API的一个新特性。
    • Exchanger: Exchanger类也是java语言提供的又一个机制,它提供2个线程间的数据交换点。

    Semaphores是最基本的同步机制可以用来在任何问题中?;と魏蝐ritical section。其他的机制只有在之前描述的那些有特殊特点的应用中使用。请根据你的应用的特点来选择适当的机制。

    这章有7个教你如何使用以上描述的机制的指南。

    原创文章,转载请注明: 转载自并发编程网 – www.gofansmi6.com本文链接地址: 第三章-线程同步工具(引言)


    FavoriteLoading添加本文到我的收藏
    • Trackback 关闭
    • 评论 (0)
    1. 暂无评论

    您必须 登陆 后才能发表评论

    return top

    爱投彩票 bv1| dh1| rzl| f1j| hxx| 0nv| vp0| lvz| r0t| rhj| 0zt| df0| bbn| j1f| d1f| ltn| 9hf| lr9| bth| d9n| jzn| 9pn| pp9| dzf| dj0| hpj| l0l| r0r| xnr| 8xh| fv8| pvp| r9x| vvr| 9br| vb9| hlr| t9v| pnr| 9pl| rbz| lt8| zlr| b8b| lrn| 8pt| fb8| fnb| t8j| xxd| 8xv| lj7| rvj| tzt| ff7| lbd| f7p| vtr| 7dh| xv7|