{{sellerTotalView > 1 ? __("sellers", {number: sellerTotalView}) : __("seller", {number: sellerTotalView}) }}, {{numTotalView > 1 ? __("items", {number: numTotalView}) : __("item", {number: numTotalView}) }}
free FREE

Change Your Zip Code

Inventory information and delivery speeds may vary for different locations.

Location History

{{email ? __('Got it!') : __('Restock Alert')}}

We will notify you by email when the item back in stock.

Cancel
Yami

Jingdong book

Java并发编程的艺术

{{buttonTypePin == 3 ? __("Scan to view more PinGo") : __("Scan to start")}}

Java并发编程的艺术

{{__(":people-members", {'people': item.limit_people_count})}} {{ itemCurrency }}{{ item.valid_price }} {{ itemCurrency }}{{ item.invalid_price }} {{ itemDiscount }}
Ends in
{{ itemCurrency }}{{ item.valid_price }}
{{ itemCurrency }}{{ priceFormat(item.valid_price / item.bundle_specification) }}/{{ item.unit }}
{{ itemDiscount }}
{{ itemCurrency }}{{ item.valid_price }} {{ itemCurrency }}{{ priceFormat(item.valid_price / item.bundle_specification) }}/{{ item.unit }} {{ itemCurrency }}{{ item.invalid_price }} {{itemDiscount}}
{{ itemCurrency }}{{ item.valid_price }}
Sale ends in
Sale will starts after Sale ends in
{{ getSeckillDesc(item.seckill_data) }}
{{ __( "Pay with Gift Card to get sale price: :itemCurrency:price", { 'itemCurrency' : itemCurrency, 'price' : (item.giftcard_price ? priceFormat(item.giftcard_price) : '0.00') } ) }} ({{ itemCurrency }}{{ priceFormat(item.giftcard_price / item.bundle_specification) }}/{{ item.unit }}) Details
Best before

Currently unavailable.

We don't know when or if this item will be back in stock.

Unavailable in your area.
Sold Out

Details

Full product details
Editer Recommend

阿里系和1号店资深技术专家撰写,Java并发编程领域的扛鼎之作,内容在InfoQ等社群得到高度认可

从JDK源码、JVM、CPU等多角度全面剖析和讲解Java并发编程的框架、原理和核心技术

随着大数据时代的来临,程序员可能每天要处理几十个TB的数据,如何让程序快速且安全地处理各种大数据,就需要掌握不同的并发编程模型和并发编程技巧。用户的一个点击,需要在毫秒级处理完多个任务,同样需要并发编程的参与。

并发编程是Java语言的重要特性之一,在Java平台上提供了许多基本的并发功能来辅助开发多线程应用程序。然而,这些相对底层的并发功能与上层应用程序的并发语义之间并不存在一种简单而直观的映射关系。因此,如何在Java并发应用程序中正确且高效地使用这些功能就成了Java开发人员的关注重点。

《Java并发编程的艺术》正是为了解决这个问题而写的。书中采用循序渐进的讲解方式,从并发编程的底层实现机制入手,逐步介绍了在设计Java并发程序时各种重要的技术、设计模式与应用,同时辅以丰富的示例代码,使得开发人员能够更快地领悟Java并发编程的要领,围绕着Java平台的基础并发功能快速地构建大规模的并发应用程序。


更多精彩,点击进入品牌店查阅>>

Content Description

并发编程领域的扛鼎之作,作者是阿里和1号店的资深Java技术专家,对并发编程有非常深入的研究,《Java并发编程的艺术》是他们多年一线开发经验的结晶。本书的部分内容在出版早期发表在Java并发编程网和InfoQ等技术社区,得到了非常高的评价。它选取了Java并发编程中最核心的技术进行讲解,从JDK源码、JVM、CPU等多角度全面剖析和讲解了Java并发编程的框架、工具、原理和方法,对Java并发编程进行了最为深入和透彻的阐述。

《Java并发编程的艺术》内容涵盖Java并发编程机制的底层实现原理、Java内存模型、Java并发编程基础、Java中的锁、并发容器和框架、原子类、并发工具类、线程池、Executor框架等主题,每个主题都做了深入的讲解,同时通过实例介绍了如何应用这些技术。

Author Description

方腾飞(花名清英,英文名kiral),

蚂蚁金服集团技术专家,从事Java开发近10年。5年以上的团队管理、项目管理和敏捷开发经验,崇尚团队合作。曾参与CMS、电子海图、SOC、ITIL、电子商务网站和信贷管理系统等项目。目前在蚂蚁金服网商银行贷款管理团队负责数据采集平台开发工作。与同事合作开发了tala code Review插件,深受阿里数千名工程师拥趸,并开发过开源工具jdbcutil(https://github.com/kiral/utils)。创办了并发编程网,组织翻译了百余篇国外优秀技术文章,并曾为InfoQ撰写“聊聊并发”专栏,在《程序员》杂志撰写敏捷实践系列文章


魏鹏,

阿里巴巴集团技术专家,在阿里巴巴中国网站技术部工作多年,曾担任中国网站交易平台架构师,主导了交易系统服务化工作,设计实现的数据迁移系统高效地完成了阿里巴巴中国网站交易数据到阿里巴巴集团的迁移工作。目前在阿里巴巴共享业务事业部从事Java应用容器Pandora和服务框架HSF的相关工作,其中Java应用容器Pandora是阿里巴巴中间件运行的基础,而服务框架HSF则是阿里巴巴集团实现服务化的主要解决方案,二者在阿里巴巴拥有最为广泛的使用量。个人平时喜欢阅读技术书籍,翻译一些国外优秀文档,喜欢总结、乐于分享,对Java应用容器、多线程编程以及分布式系统感兴趣。


程晓明,

1号店资深架构师,从事1号店交易平台系统的开发,技术上关注并发与NIO。因5年前遇到的一个线上故障,解决过程中对Java并发编程产生了浓厚的兴趣,从此开始了漫长的探索之旅:从底层实现机制、内存模型到Java同步。纵观我自己对Java并发的学习过程,是一个从高层到底层再到高层的一个反复迭代的过程,我估计很多读者的学习过程应该与我类似。文章多见诸《IBM developerWorks》、InfoQ和《程序员》杂志。

Catalogue

前言
第1章并发编程的挑战 1
1.1上下文切换 1
1.1.1多线程一定快吗 1
1.1.2测试上下文切换次数和时长 3
1.1.3如何减少上下文切换 3
1.1.4减少上下文切换实战 4
1.2死锁 5
1.3资源限制的挑战 6
1.4本章小结 7
第2章Java并发机制的底层实现原理 8
2.1volatile的应用 8
2.2synchronized的实现原理与应用 11
2.2.1Java对象头 12
2.2.2锁的升级与对比 13
2.3原子操作的实现原理 16
2.4本章小结 20
第3章Java内存模型 21
3.1Java内存模型的基础 21
3.1.1并发编程模型的两个关键问题 21
3.1.2Java内存模型的抽象结构 22
3.1.3从源代码到指令序列的重排序 23
3.1.4并发编程模型的分类 24
3.1.5happens-before简介 26
3.2重排序 27
3.2.1数据依赖性 28
3.2.2as-if-serial语义 28
3.2.3程序顺序规则 29
3.2.4重排序对多线程的影响 29
3.3顺序一致性 31
3.3.1数据竞争与顺序一致性 31
3.3.2顺序一致性内存模型 32
3.3.3同步程序的顺序一致性效果 34
3.3.4未同步程序的执行特性 35
3.4volatile的内存语义 38
3.4.1volatile的特性 38
3.4.2volatile写-读建立的happens-before关系 39
3.4.3volatile写-读的内存语义 40
3.4.4volatile内存语义的实现 42
3.4.5JSR-133为什么要增强volatile的内存语义 46
3.5锁的内存语义 47
3.5.1锁的释放-获取建立的
happens-before关系 47
3.5.2锁的释放和获取的内存语义 48
3.5.3锁内存语义的实现 50
3.5.4concurrent包的实现 54
3.6final域的内存语义 55
3.6.1final域的重排序规则 55
3.6.2写final域的重排序规则 56
3.6.3读final域的重排序规则 57
3.6.4final域为引用类型 58
3.6.5为什么final引用不能从构造函数内“溢出” 59
3.6.6final语义在处理器中的实现 61
3.6.7JSR-133为什么要增强f?inal的语义 62
3.7happens-before 62
3.7.1JMM的设计 62
3.7.2happens-before的定义 64
3.7.3happens-before规则 65
3.8双重检查锁定与延迟初始化 67
3.8.1双重检查锁定的由来 67
3.8.2问题的根源 69
3.8.3基于volatile的解决方案 71
3.8.4基于类初始化的解决方案 72
3.9Java内存模型综述 78
3.9.1处理器的内存模型 78
3.9.2各种内存模型之间的关系 80
3.9.3JMM的内存可见性保证 80
3.9.4JSR-133对旧内存模型的修补 81
3.10本章小结 82
第4章Java并发编程基础 83
4.1线程简介 83
4.1.1什么是线程 83
4.1.2为什么要使用多线程 84
4.1.3线程优先级 85
4.1.4线程的状态 87
4.1.5Daemon线程 90
4.2启动和终止线程 91
4.2.1构造线程 91
4.2.2启动线程 92
4.2.3理解中断 92
4.2.4过期的suspend()、resume()和stop() 93
4.2.5安全地终止线程 95
4.3线程间通信 96
4.3.1volatile和synchronized关键字 96
4.3.2等待/通知机制 98
4.3.3等待/通知的经典范式 101
4.3.4管道输入/输出流 102
4.3.5Thread.join()的使用 103
4.3.6ThreadLocal的使用 105
4.4线程应用实例 106
4.4.1等待超时模式 106
4.4.2一个简单的数据库连接池示例 106
4.4.3线程池技术及其示例 110
4.4.4一个基于线程池技术的简单Web服务器 114
4.5本章小结 118
第5章Java中的锁 119
5.1Lock接口 119
5.2队列同步器 121
5.2.1队列同步器的接口与示例 121
5.2.2队列同步器的实现分析 124
5.3重入锁 136
5.4读写锁 140
5.4.1读写锁的接口与示例 141
5.4.2读写锁的实现分析 142
5.5LockSupport工具 146
5.6Condition接口 147
5.6.1Condition接口与示例 148
5.6.2Condition的实现分析 150
5.7本章小结 154
第6章Java并发容器和框架 155
6.1ConcurrentHashMap的实现原理与使用 155
6.1.1为什么要使用ConcurrentHashMap 155
6.1.2ConcurrentHashMap的结构 156
6.1.3ConcurrentHashMap的初始化 157
6.1.4定位Segment 159
6.1.5ConcurrentHashMap的操作 160
6.2ConcurrentLinkedQueue 161
6.2.1ConcurrentLinkedQueue的结构 162
6.2.2入队列 162
6.2.3出队列 165
6.3Java中的阻塞队列 167
6.3.1什么是阻塞队列 167
6.3.2Java里的阻塞队列 168
6.3.3阻塞队列的实现原理 172
6.4Fork/Join框架 175
6.4.1什么是Fork/Join框架 175
6.4.2工作窃取算法 176
6.4.3Fork/Join框架的设计 177
6.4.4使用Fork/Join框架 177
6.4.5Fork/Join框架的异常处理 179
6.4.6Fork/Join框架的实现原理 179
6.5本章小结 181
第7章Java中的13个原子操作类 182
7.1原子更新基本类型类 182
7.2原子更新数组 184
7.3原子更新引用类型 185
7.4原子更新字段类 187
7.5本章小结 188
第8章Java中的并发工具类 189
8.1等待多线程完成的CountDownLatch 189
8.2同步屏障CyclicBarrier 191
8.2.1CyclicBarrier简介 191
8.2.2CyclicBarrier的应用场景 193
8.2.3CyclicBarrier和CountDownLatch的区别 195
8.3控制并发线程数的Semaphore 196
8.4线程间交换数据的Exchanger 198
8.5本章小结 199
第9章Java中的线程池 200
9.1线程池的实现原理 200
9.2线程池的使用 203
9.2.1线程池的创建 203
9.2.2向线程池提交任务 205
9.2.3关闭线程池 205
9.2.4合理地配置线程池 206
9.2.5线程池的监控 206
9.3本章小结 207
第10章Executor框架 208
10.1Executor框架简介 208
10.1.1Executor框架的两级调度模型 208
10.1.2Executor框架的结构与成员 208
10.2ThreadPoolExecutor详解 213
10.2.1FixedThreadPool详解 213
10.2.2SingleThreadExecutor详解 214
10.2.3CachedThreadPool详解 215
10.3ScheduledThreadPoolExecutor详解 217
10.3.1ScheduledThreadPoolExecutor的运行机制 217
10.3.2ScheduledThreadPoolExecutor的实现 218
10.4FutureTask详解 221
10.4.1FutureTask简介 222
10.4.2FutureTask的使用 222
10.4.3FutureTask的实现 224
10.5本章小结 227
第11章Java并发编程实践 228
11.1生产者和消费者模式 228
11.1.1生产者消费者模式实战 229
11.1.2多生产者和多消费者场景 231
11.1.3线程池与生产消费者模式 234
11.2线上问题定位 234
11.3性能测试 236
11.4异步任务池 238
11.5本章小结 240

Introduction

为什么要写这本书记得第一次写并发编程的文章时还是在2012年,当时花了几个星期的时间写了一篇文章《深入分析volatile的实现原理》,准备在自己的博客中发表。在同事建法的建议下,怀着试一试的心态投向了InfoQ,庆幸的是半小时后得到InfoQ主编采纳的回复,高兴之情无以言表。这也是我第一次在专业媒体上发表文章,而后在InfoQ编辑张龙的不断鼓励和支持下,我陆续在InfoQ发表了几篇与并发编程相关的文章,于是便形成了“聊聊并发”专栏。在这个专栏的写作过程中,我得到快速的成长和非常多的帮助,在此非常感谢InfoQ的编辑们。2013年,华章的福川兄找到我,问有没有兴趣写一本书,当时觉得自己资历尚浅,婉言拒绝了。后来和福川兄一直保持联系,最后允许我花两年的时间来完成本书,所以答应了下来。由于并发编程领域的技术点非常多且深,所以陆续又邀请了同事魏鹏和朋友晓明一起参与到本书的编写当中。

写本书的过程也是对自己研究和掌握的技术点进行整理的过程,希望本书能帮助读者快速掌握并发编程技术。

本书一共11章,由三名作者共同编写完成,其中第3章和第10章节由程晓明编写,第4章和第5章由魏鹏编写,其他7章由方腾飞编写。

本书特色本书结合JDK的源码介绍了Java并发框架、线程池的实现原理,帮助读者做到知其所以然。

本书对原理的剖析不仅仅局限于Java层面,而是深入到JVM,甚至CPU层面来进行讲解,帮助读者从更底层看并发技术。

本书结合线上应用,给出了一些并发编程实战技巧,以及线上处理并发问题的步骤和思路。

读者对象Java开发工程师架构师并发编程爱好者开设相关课程的大专院校师生如何阅读本书阅读本书之前,你必须有一定的Java基础和开发经验,最好还有一定的并发编程基础。如果你是一名并发编程初学者,建议按照顺序阅读本书,并按照书中的例子进行编码和实战。如果你有一定的并发编程经验,可以把本书当做一个手册,直接看需要学习的章节。以下是各章节的基本介绍。

第1章介绍Java并发编程的挑战,向读者说明进入并发编程的世界可能会遇到哪些问题,以及如何解决。

第2章介绍Java并发编程的底层实现原理,介绍在CPU和JVM这个层面是如何帮助Java实现并发编程的。

第3章介绍深入介绍了Java的内存模型。Java线程之间的通信对程序员完全透明,内存可见性问题很容易困扰Java程序员,本章试图揭开Java内存模型的神秘面纱。

第4章从介绍多线程技术带来的好处开始,讲述了如何启动和终止线程以及线程的状态,详细阐述了多线程之间进行通信的基本方式和等待/通知经典范式。

第5章介绍Java并发包中与锁相关的API和组件,以及这些API和组件的使用方式与实现细节。

第6章介绍了Java中的大部分并发容器,并深入剖析其实现原理,让读者领略大师的设计技巧。

第7章介绍了Java中的原子操作类,并给出一些实例。

第8章介绍了Java中提供的并发工具类,这是并发编程中的瑞士军刀。

第9章介绍了Java中的线程池实现原理和使用建议。

第10章介绍了Executor框架的整体结构和成员组件。

第11章介绍几个并发编程的实战,以及排查并发编程造成问题的方法。

勘误和支持由于笔者的水平有限,编写时间仓促,书中难免会出现一些错误或者不准确的地方,恳请读者批评指正。为此,特意创建一个在线支持与应急方案的站点。你可以将书中的错误发布在勘误表页面中,同时如果你遇到任何问题,也可以访问Q&A页面,我将尽量在线上为读者提供最满意的解答。书中的全部源文件除可以从华章网站下载外,还可以从并发编程网站下载,我也会将相应的功能更新及时发布出来。

致谢感谢机械工业出版社华章公司的杨福川、高婧雅、孙海亮,在这一年多的时间中始终支持我的写作,你们的鼓励和帮助引导我顺利完成全部书稿。

感谢方正电子的刘老师,是他带我进入了面向对象的世界。

感谢我的主管朱老板,他在工作和生活上给予我很多的帮助和支持,还经常激励我完成本书编写。

最后感谢我的爸妈、岳父母和老婆,感谢你们的支持,并时时刻刻为我灌输信心和力量!

谨以此书献给我的儿子方熙皓,希望他能健康成长,以及众多热爱并发编程的朋友们,希望你们能快乐工作,认真生活!

方腾飞



Specifications

Brand Jingdong book
Brand Origin China

Disclaimer

Product packaging, specifications and price are subject to change without notice. All information about the products on our website is provided for information purposes only. Please always read labels, warnings and directions provided with the product before use.

View Full Terms of Use
Add to favorites
{{ $isZh ? coupon.coupon_name_sub : coupon.coupon_ename_sub | formatCurrency }}
{{__("Buy Directly")}} {{ itemCurrency }}{{ item.directly_price }}
Quantity
{{ quantity }}
{{ instockMsg }}
{{ limitText }}
{{buttonTypePin == 3 ? __("Scan to view more PinGo") : __("Scan to start")}}
Sold by JD@CHINA
Ship to
{{ __("Ship to United States only") }}
Free shipping over 69
Genuine guarantee

Added to Cart

Keep Shopping

More to Consider

{{ item.brand_name }}

{{ item.item_name }}

{{ item.currency }}{{ item.market_price }}

{{ item.currency }}{{ item.unit_price }}

{{ item.currency }}{{ item.unit_price }}

Coupons

{{ coupon.coupon_name_new | formatCurrency }}
Clip Clipped Over
{{ getCouponDescStr(coupon) }}
{{ coupon.use_time_desc }}
Expires soon {{ formatTime(coupon.use_end_time) }}

Share this item with friends

Cancel

Yami Gift Card

Get this exclusive deal when paying with gift card

Terms and Conditions

Gift card deals are special offers for selected products;

The gift card deals will automatically be activated if a customer uses gift card balance at check out and the balance is sufficient to pay for the total price of the shopping cart products with gift card deals;

You will not be able to activate the gift card deals if you choose other payment methods besides gift card. The products will be purchased at their normal prices;

If your account balance is not enough to pay for the products with gift card deals, you can choose to reload your gift card balance by clicking on the Reload button at either shopping cart page or check out page;

Products that have gift card deals can be recognized by a special symbol showing 'GC Deal';

For any additional questions or concerns, please contact our customer service;

Yamibuy reserves the right of final interpretation.

Sold by Yami

Service Guarantee

Yami Free Shipping over $49
Yami Easy Returns
Yami Ships from United States

Shipping

  • United States

    Standard Shipping is $5.99 (Excluding Alaska & Hawaii). Free on orders of $49 or more.

    Local Express is $5.99 (Available in Parts of CA, NJ, MA & PA). Free on orders of $49 or more.

    2-Day Express (Includes Alaska & Hawaii) starts at $19.99.

Return Policy

Yami is committed to provide our customers with a peace of mind when purchasing from us. Most items shipped from Yamibuy.com can be returned within 30 days of receipt of shipment (For Food, Beverages, Snacks, Dry Goods, Health supplements, Fresh Grocery and Perishables Goods, within 7 days of receipt of shipment due to damages or quality issues; To ensure that every customer receives safe and high-quality products, we do not provide refunds or returns for beauty products once they have been opened or used, except in the case of quality issues; Some products may have different policies or requirements associated with them, please see below for products under special categories, or contact Yami Customer Service for further assistance).
Thank you for your understanding and support.

Learn More

Sold by Yami

Terms and Conditions of Yami E-Gift Card

If you choose “Redeem automatically” as your delivery method, your gift card balance will be reload automatically after your order has been processed successfully;

If you choose “Send to Email”as your delivery method, the card number and CVV will be sent to the email address automatically;

Any user can use the card number and CVV to redeem the gift card, please keep your gift card information safely. If you have any trouble receiving email, please contact Yami customer service;

Yami gift card can be used to purchase both Yami owned or Marketplace products;

Yami gift card will never expire;

Yami gift card balance does not have to be used up at once;

All rights reserved by Yami.

Return Policy

Gift card that has already been consumed is non-refundable.

Sold by JD@CHINA

Service Guarantee

Yami Free Shipping over $49
Yami Easy Returns
Yami Ships from United States

Shipping

  • United States

    Standard Shipping is $5.99 (Excluding Alaska & Hawaii). Free on orders of $49 or more.

    Local Express is $5.99 (Available in Parts of CA, NJ, MA & PA). Free on orders of $49 or more.

    2-Day Express (Includes Alaska & Hawaii) starts at $19.99.

Return Policy

You may return product within 30 days upon receiving the product. Items returned must be new in it's original packing, including the original invoice for the purchase. Customer return product at their own expense.

Sold by JD@CHINA

Service Guarantee

Yami Cross-store Free Shipping over $69
Yami 30-days Return

Yami-China FC

Yami has a consolidation warehouse in China which collects multiple sellers’ packages and combines to one order. Our Yami consolidation warehouse will directly ship the packages to your door. Cross-store free shipping over $69.

Return Policy

You may return products within 30 days upon receiving the products. Sellers take responsibilities for any wrong shipment or missing items. Packing needs to be unopened for any other than quality issues return. We promise to pack carefully, but because goods are taking long journey to destinations, simple damages to packaging may occur. Any damages not causing internal goods quality problems are not allowed to return. If you open the package and any quality problem is found, please contact customer service within three days after receipt of goods.

Shipping Information

Yami Consolidation Service Shipping Fee $9.99(Free shipping over $69)

Sellers in China will ship their orders within 1-2 business days once the order is placed. Packages are sent to our consolidation warehouse in China and combined there. Our Yami consolidation warehouse will directly ship the packages to you via UPS. The average time for UPS to ship from China to the United States is about 10 working days and it can be traced using the tracking number. Due to the pandemic, the delivery time may be delayed by about 5 days. The package needs to be signed by the guest. If the receipt is not signed, the customer shall bear the risk of loss of the package.

Sold by JD@CHINA

Service Guarantee

Free shipping over 69
Genuine guarantee

Shipping

Yami Consolidated Shipping $9.99(Free shipping over $69)


Seller will ship the orders within 1-2 business days. The logistics time limit is expected to be 7-15 working days. In case of customs clearance, the delivery time will be extended by 3-7 days. The final receipt date is subject to the information of the postal company.

Yami Points information

All items are excluding from any promotion or points events on Yamibuy.com

Return Policy

You may return product within 30 days upon receiving the product. Items returned must be new in it's original packing, including the original invoice for the purchase. Customer return product at their own expense.

Yami

Download the Yami App

Back Top

Recommended for You

About the brand

Jingdong book

为您推荐

Yami
欣葉
2种选择
欣叶 御大福 芋头麻薯 180g

周销量 600+

$1.66 $1.99 83折
Yami
欣葉
2种选择
欣叶 御大福 芋头麻薯 180g

周销量 600+

$1.66 $1.99 83折
Yami
欣葉
2种选择
欣叶 御大福 芋头麻薯 180g

周销量 600+

$1.66 $1.99 83折
Yami
欣葉
2种选择
欣叶 御大福 芋头麻薯 180g

周销量 600+

$1.66 $1.99 83折
Yami
欣葉
2种选择
欣叶 御大福 芋头麻薯 180g

周销量 600+

$1.66 $1.99 83折
Yami
欣葉
2种选择
欣叶 御大福 芋头麻薯 180g

周销量 600+

$1.66 $1.99 83折

Reviews{{'('+ commentList.posts_count + ')'}}

Have your say. Be the first to help other guests.

Write a review
{{ totalRating }} Write a review
  • {{i}} star

    {{i}} stars

    {{ parseInt(commentRatingList[i]) }}%

Yami Yami
{{ comment.user_name }}

{{ showTranslate(comment) }}Show Less

{{ strLimit(comment,800) }}Show more

Show Original

{{ comment.content }}

Yami
Show All

{{ formatTime(comment.in_dtm) }} VERIFIED PURCHASE {{groupData}}

{{ comment.likes_count }} {{ comment.likes_count }} {{ comment.reply_count }} {{comment.in_user==uid ? __('Delete') : __('Report')}}
Yami Yami
{{ comment.user_name }}

{{ showTranslate(comment) }}Show Less

{{ strLimit(comment,800) }}Show more

Show Original

{{ comment.content }}

Yami
Show All

{{ formatTime(comment.in_dtm) }} VERIFIED PURCHASE {{groupData}}

{{ comment.likes_count }} {{ comment.likes_count }} {{ comment.reply_count }} {{comment.in_user==uid ? __('Delete') : __('Report')}}

No related comment~

Review

Yami Yami

{{ showTranslate(commentDetails) }}Show Less

{{ strLimit(commentDetails,800) }}Show more

Show Original

{{ commentDetails.content }}

Yami
Show All

{{ formatTime(commentDetails.in_dtm) }} VERIFIED PURCHASE {{groupData}}

{{ commentDetails.likes_count }} {{ commentDetails.likes_count }} {{ commentDetails.reply_count }} {{commentDetails.in_user==uid ? __('Delete') : __('Report')}}

Please write at least one word

Comments{{'(' + replyList.length + ')'}}

Yami Yami

{{ showTranslate(reply) }}Show Less

{{ strLimit(reply,800) }}Show more

Show Original

{{ reply.reply_content }}

{{ formatTime(reply.reply_in_dtm) }}

{{ reply.reply_likes_count }} {{ reply.reply_likes_count }} {{ reply.reply_reply_count }} {{reply.reply_in_user==uid ? __('Delete') : __('Report')}}

Please write at least one word

Cancel

That’s all the comments so far!

Write a review
How would you rate this item?

Please add your comment.

  • A nice nickname will make your comments more popular!
  • The nickname in your account will be changed to the same as here.
Thanks for your review
Our community rely on great reviews like yours to find the best of Asia.

Report

If you find this content inappropriate and think it should be removed from the Yami.com site, let us know please.

Cancel

Are you sure to delete your review?

Cancel

You’ve Recently Viewed

About the brand

Jingdong book