返回首页
苏宁会员
购物车 0
易付宝
手机苏宁

服务体验

店铺评分与同行业相比

用户评价:----

物流时效:----

售后服务:----

  • 服务承诺: 正品保障
  • 公司名称:
  • 所 在 地:
本店所有商品

  • 醉染图书JA多线程编程核心技术(第2版)9787111614906
  • 正版全新
    • 作者: 高洪岩著 | 高洪岩编 | 高洪岩译 | 高洪岩绘
    • 出版社: 机械工业出版社
    • 出版时间:2019-05-01
    送至
  • 由""直接销售和发货,并提供售后服务
  • 加入购物车 购买电子书
    服务

    看了又看

    商品预定流程:

    查看大图
    /
    ×

    苏宁商家

    商家:
    醉染图书旗舰店
    联系:
    • 商品

    • 服务

    • 物流

    搜索店内商品

    商品分类

    商品参数
    • 作者: 高洪岩著| 高洪岩编| 高洪岩译| 高洪岩绘
    • 出版社:机械工业出版社
    • 出版时间:2019-05-01
    • 版次:2
    • 印次:1
    • 字数:310
    • 页数:442
    • 开本:16开
    • ISBN:9787111614906
    • 版权提供:机械工业出版社
    • 作者:高洪岩
    • 著:高洪岩
    • 装帧:平装
    • 印次:1
    • 定价:99.00
    • ISBN:9787111614906
    • 出版社:机械工业出版社
    • 开本:16开
    • 印刷时间:暂无
    • 语种:暂无
    • 出版时间:2019-05-01
    • 页数:442
    • 外部编号:1201879135
    • 版次:2
    • 成品尺寸:暂无

    前言章  Java多线程技能11.1  进程和多线程概述11.2  使用多线程51.2.1  继承Thread类51.2.2  使用常见命令分析线程的信息81..  线程随机的展现111.2.4  执行start()的顺序不代表执行run()的顺序121.2.5  实现Runnable接口131.2.6  使用Runnable接口实现多线程的优点141.2.7  实现Runnable接口与继承Thread类的内部流程161.2.8  实例变量共享造成的非线程安全问题与解决方案171.2.9  Servlet技术造成的非线程安全问题与解决方案211.2.10  留意i--与System.out.println()出现的非线程安全问题241.3  currentThread()方法261.4  isAlive()方法291.5  sleep(long millis)方法311.6  sleep(long millis, int nanos)方法331.7  StackTraceElement[] getStackTrace()方法331.8  static void dumpStack()方法351.9  static Map getAllStackTraces()方法361.10  getId()方法381.11  停止线程381.11.1  停止不了的线程391.11.2  判断线程为停止状态411.11.3  能停止的线程—异常法431.11.4  在sleep状态下停止线程471.11.5  用stop()方法暴力停止线程491.11.6  stop()方法与ja..ThreadDeath异常511.11.7  使用stop()释放锁给数据造成不一致的结果521.11.8  使用“return;”语句停止线程的缺点与解决方案541.12  暂停线程571.12.1  suspend()方法与resume()方法的使用571.12.2  suspend()方法与resume()方法的缺点—独占581.1.  suspend()方法与resume()方法的缺点—数据不完整621.13  yield()方法631.14  线程的优先级641.14.1  线程优先级的继承特651.14.2  优先级的规律661.14.3  优先级的随机61.14.4  优先级对线程运行速度的影响701.15  守护线程711.16  本章小结73第2章  对象及变量的并发访问742.1  synchronized同步方法742.1.1  方法内的变量为线程安全742.1.2  实例变量非线程安全问题与解决方案772.1.3  同步synchronized在字节码指令中的原理802.1.4  多个对象多个锁812.1.5  将synchronized方法与对象作为锁842.1.6  脏读892.1.7  synchronized锁重入912.1.8  锁重入支持继承的环境932.1.9  出现异常,锁自动释放942.1.10  重写方法不使用synchronized962.1.11  public static boolean holdsLock(Object obj)方法的使用992.2  synchronized同步语句块992.2.1  synchronized方法的弊端992.2.2  synchronized同步代码块的使用1022..  用同步代码块解决同步方法的弊端1042.2.4  一半异步,一半同步1052.2.5  synchronized代码块间的同步102.2.6  println()方法也是同步的1102.2.7  验同步synchronized(this)代码块是锁定当前对象的1102.2.8  将任意对象作为锁1132.2.9  多个锁就是异步执行1162.2.10  验方法被调用是随机的1182.2.11  不同步导致的逻辑错误及其解决方法1212.2.12  细化验3个结论1242.2.13  类Class的单例1292.2.14  静态同步synchronized方法与synchronized(class)代码块1302.2.15  同步syn static方法可以对类的所有对象实例起作用1352.2.16  同步syn(class)代码块可以对类的所有对象实例起作用1372.2.17  String常量池特与同步相关的问题与解决方案1382.2.18  同步synchronized方法等待问题与解决方案1412.2.19  多线程的死锁1432.2.20  内置类与静态内置类1462.2.21  内置类与同步:实验11492.2.22  内置类与同步:实验21512.2.  锁对象改变导致异步执行1532.2.24  锁对象不改变依然同步执行1562.2.25  同步写法案例比较158.  volatile关键字159..1  可见的测试159..2  原子的测试168..  禁止代码重排序的测试1762.4  本章小结187第3章  线程间通信1883.1  wait/notify机制1883.1.1  不使用wait/notify机制实现线程间通信1883.1.2  wait/notify机制1913.1.3  wait/notify机制的原理19.1.4  wait()方法的基本使用19.1.5  完整实现wait/notify机制1943.1.6  使用wait/notify机制实现list.size()等于5时的线程销毁1953.1.7  对业务代码进行封装1983.1.8  线程状态的切换2013.1.9  wait()方法:立即释放锁20.1.10  sleep()方法:不释放锁2033.1.11  notify()方法:不立即释放锁2043.1.12  interrupt()方法遇到wait()方法2063.1.13  notify()方法:只通知一个线程2083.1.14  notifyAll()方法:通知所有线程2113.1.15  wait(long)方法的基本使用21.1.16  wait(long)方法自动向下运行需要重新持有锁2143.1.17  通知过早问题与解决方法2173.1.18  wait条件发生变化与使用while的必要2203.1.19  生产者/消费者模式的实现2243.1.20  通过管道进行线程间通信—字节流2503.1.21  通过管道进行线程间通信—字符流2533.1.22  实现wait/notify的交叉备份2563.2  join()方法的使用2593.2.1  学习join()方法前的铺垫2593.2.2  join()方法和interrupt()方法出现异常2613..  join(long)方法的使用2633.2.4  join(long)方法与sleep(long)方法的区别2643.2.5  join()方法后面的代码提前运行—出现意外 2683.2.6  join()方法后面的代码提前运行—解释意外2703.2.7  join(long millis, int nanos)方法的使用2733.3  类ThreadLocal的使用2733.3.1  get()方法与null2743.3.2  类ThreadLocal存取数据流程分析2753.3.3  验线程变量的隔离2773.3.4  解决get()方法返回null的问题28..5  验重写initialValue()方法的隔离.4  类InheritableThreadLocal的使用2843.4.1  类ThreadLocal不能实现值继承2853.4.2  使用InheritableThreadLocal体现值继承特263.4.3  值继承特在源代码中的执行流程2883.4.4  父线程有的值,子线程仍是旧值2913.4.5  子线程有的值,父线程仍是旧值2933.4.6  子线程可以感应对象属值的变化2943.4.7  重写childValue()方法实现对继承的值进行加工2973.5  本章小结298第4章  Lock对象的使用2994.1  使用ReentrantLock类2994.1.1  使用ReentrantLock实现同步2994.1.2  验多代码块间的同步3014.1.3  await()方法的错误用法与更正3044.1.4  使用await()和signal()实现wait/notify机制3074.1.5  await()方法暂停线程运行的原理3094.1.6  通知部分线程—错误用法3124.1.7  通知部分线程—正确用法3144.1.8  实现生产者/消费者模式一对一交替输出3174.1.9  实现生产者/消费者模式多对多交替输出3194.1.10  公平锁与非公平锁3214.1.11  public int getHoldCount()方法的使用3244.1.12  pubc inl int geteue Length()方法的使用3254.1.13  public int getWaiteue-Length (Condition condition)方法的使用3274.1.14  pubc inl boolean has-euedThread (Thread thread)方法的使用3284.1.15  pubc inl boolean has-euedThreads()方法的使用3294.1.16  public boolean hasWaiters (Con-dition condition)方法的使用3314.1.17  pubc inl boolean isFair()方法的使用3324.1.18  public boolean isHeldBy-CurrentThread()方法的使用3334.1.19  public boolean isLocked()方法的使用3344.1.20  public void lockInterruptibly()方法的使用3354.1.21  public boolean tryLock()方法的使用3364.1.22  public boolean tryLock (long timeout, TimeUnit unit)方法的使用3384.1.  public boolean await (long time, TimeUnit unit)方法的使用3394.1.24  public long awaitNanos(long nanosTimeout)方法的使用3414.1.25  public boolean awaitUntil(Date deadline)方法的使用3424.1.26  public void awaitUninterru-ptibly()方法的使用3444.1.27  实现线程按顺序执行业务3464.2  使用ReentrantReadWriteLock类3494.2.1  ReentrantLock类的缺点3494.2.2  ReentrantReadWriteLock类的使用—读读共享3514..  ReentrantReadWriteLock类的使用—写写互斥3524.2.4  ReentrantReadWriteLock类的使用—读写互斥3524.2.5  ReentrantReadWriteLock类的使用—写读互斥3544.3  本章小结355第5章  定时器Timer3565.1  定时器Timer的使用3565.1.1  schedule(TimerTask task, Datetime)方法的测试3565.1.2  schedule(TimerTask task, Date firstTime, long period)方法的测试3665.1.3  schedule(TimerTask task, long delay)方法的测试3745.1.4  schedule(TimerTask task, long delay, long period)方法的测试3745.1.5  scheduleAtFixedRate (TimerTask task, Date firstTime, long period)方法的测试3755.2  本章小结384第6章  单例模式与多线程3856.1  立即加载/饿汉模式3856.2  延迟加载/懒汉模式3876.2.1  延迟加载/懒汉模式解析3876.2.2  延迟加载/懒汉模式的缺点3886..  延迟加载/懒汉模式的解决方案3906.3  使用静态内置类实现单例模式3996.4  序列化与反序列化的单例模式实现4006.5  使用static代码块实现单例模式4026.6  使用enum枚举数据类型实现单例模式4046.7  完善使用enum枚举数据类型实现单例模式4056.8  本章小结407第7章  拾遗增补4087.1  线程的状态4087.1.1  验NEW、RUNNABLE和TERMINATED4107.1.2  验TME_WAITING4117.1.3  验BLOCKED4127.1.4  验WAITING4147.2  线程组4157.2.1  线程对象关联线程组:一级关联4167.2.2  线程对象关联线程组:多级关联4177..  线程组自动归属特417.2.4  获取根线程组4197.2.5  线程组中加线程组4207.2.6  组内的线程批量停止4217.2.7  递归取得与非递归取得组内对象4227.3  Thread.activeCount()方法的使用4.4  Thread.enumerate(Thread tarray[])方法的使用4.5  再次实现线程执行有序4247.6  SimpleDateFormat非线程安全4267.6.1  出现异常4267.6.2  解决异常的方法14287.6.3  解决异常的方法24307.7  线程中出现异常的处理4317.

    高洪岩,某世界500强项目经理,有10年Java相关开发经验,精通Java语言,擅长J2EE、E、Android、报表和多线程,以及并发相关的技术内容,理论与实践经验颇丰。著有《Java多线程编程核心技术》《Java并发编程:核心方法与框架》《NIO与Socket编程技术指南》《Java EE核心框架实战 第2版》《Jasper Reports+iReport报表开发详解》《Android学习精要》等书籍。

    本书是整本系统、完整地介绍Java多线程技术的书籍,作为笔者,我要感谢大家的支持与厚爱。本书版在出版后获得了广大Java程序员与学习者的关注,技术论坛、博客、公众号等平台大量涌现出针对Java多线程技术的讨论与分享。能为国内IT知识的建设贡献微薄之力是让我欣慰的。有些读者在时间就根据书中的知识总结了学习笔记,并在博客中进行分享,笔者赞赏这种传播知识的精神。知识就要分享,知识就要传播,这样才能共同进步。第2版与版的区别本书版上市后收到了大量的读者反馈,我对每一个建议都细心地进行整理,力求在第2版中得以完善。第2版在版的基础上着重加强了8点更新:1)大量知识点重排,更有利于阅读与理解;2)更新了读者提出的共问题并进行集中讲解;3)丰富Thread.java类API的案例,使其更具有实用;4)对线程的信息进行监控实时采样;5)强化了volatile语义、多线程核心synchronized的案例;6)力求知识点连贯,方便深度学习与理解,增加原子与线程安全的内容;7)深入浅出地介绍代码重排特;)细化工具类ThrealLocal和InheritableThreadLocal的源代码分析与原理。由于篇幅有限,有关线程池的知识请参考笔者的另一本书—《Java并发编程:核心方法与框架》,那本书中有针对Java并发编程技术的讲解。在向分布式领域进军时还需要用到NIO和Socket技术,故笔者的拙作《NIO与Socket编程技术指南》,希望可以给读者带来一些帮。本书秉承大道至简的思想,只介绍Java多线程开发中值得关注的内容,希望抛砖引玉,以个人的一些想法和见解,为读者拓展出更深入、更全面的思路。本书特色在撰写本书的过程中,我尽量少用“啰唆”的文字,全部以Demo式案例来讲解技术点的实现,使读者看到代码及运行结果后就可以知道项目要解决的是什么问题,类似于网络中博客的风格,让读者用短的间学习知识点,明白知识点如何应用,以及在使用时要避免什么,使读者能够快速学习知识并解决问题。读者对象Java程序员;系统架构师;Java多线程开发者;Java并发开发者;大数据开发者;对多线程技术感兴趣的人员。如何阅读本书本书本着实用、易懂的学习原则,利用7章来介绍Java多线程相关的技术。章讲解了Java多线程的基础,包括Thread类的核心API的使用。第2章讲解了在多线程中对并发访问的控制,主要是synchronized的使用。由于此关键字在使用上灵活,所以该章用很多案例来说明它的使用,为读者学习同步知识打好坚实的基础。第3章讲解了线程之间的通信与交互细节。该章主要介绍wait()、notifyAll()和notify()方法的使用,使线程间能够互相通信,合作完成任务。该章还介绍了ThreadLocal类的使用。学习完该章,读者就能在Thread多线程中进行数据的传递了。第4章讲解了Lock对象。因为synchronized关键字使用起来比较麻烦,所以Java 5提供了Lock对象,更好地实现了并发访问时的同步处理,包括读写锁等。第5章讲解了Timer定时器类,其内部原理是使用多线程技术。定时器在执行计划任务时是很重要的,在进行Android开发时也会深入使用。第6章讲解的单例模式虽然很简单,但如果遇到多线程将会变得麻烦。如何在多线程中解决这么棘手的问题呢?本章会全面给出解决方案。第7章对前面章节遗漏的技术空白点进行补充,通过案例使多线程的知识体系更加完整,尽量做到不出现技术空白点。交流和支持由于笔者水平有限,加上编写时间仓促,书中难免会出现一些疏漏或者不准确的地方,恳请读者批评指正,期待能够得到你们的真挚反馈,在技术之路上互勉共进。联系笔者的邮箱是279377921@qq.com。致谢在本书出版的过程中,感谢公司领导和同事的大力支持,感谢家人给予我充足的时间来撰写稿件,感谢出生3个多月的儿子高晟京,看到你,我有了更多动力,感谢在此稿件上耗费大量精力的高婧雅编辑与她的同事们,是你们的鼓励和帮,引导我顺利完成了本书。高洪岩

    1)技术书全新升级,案例式讲解,逐一分析和验每个技术点,通俗易懂 2)本书涵盖多线程编程的核心库、方法、原理,解决高并发环境下的业务瓶颈

    售后保障

    最近浏览

    猜你喜欢

    该商品在当前城市正在进行 促销

    注:参加抢购将不再享受其他优惠活动

    x
    您已成功将商品加入收藏夹

    查看我的收藏夹

    确定

    非常抱歉,您前期未参加预订活动,
    无法支付尾款哦!

    关闭

    抱歉,您暂无任性付资格

    此时为正式期SUPER会员专享抢购期,普通会员暂不可抢购