{{sellerTotalView > 1 ? __("sellers", {number: sellerTotalView}) : __("seller", {number: sellerTotalView}) }}, {{numTotalView > 1 ? __("items", {number: numTotalView}) : __("item", {number: numTotalView}) }}
무료배송

배송 지역 전환

지역에 따라 재고 및 배송 속도가 다를 수 있습니다.

위치 기록

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

상품입고 후 바로 알려드리겠습니다.

취소
Yami

Jingdong book

Scala 并发编程

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

Scala 并发编程

{{__(":people-members", {'people': item.limit_people_count})}} {{ itemCurrency }}{{ item.valid_price }} {{ itemCurrency }}{{ item.invalid_price }} {{ itemDiscount }}
후 종료
{{ 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 }}
후에 세일 종료
후 초특가세일 시작 후 초특가세일 종료
{{ 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 }}) 상세정보
상품 유효 기간

판매 중단

이 상품이 언제 재입고될지는 알 수 없습니다.

현재 주소로 배송 불가
품절

제품 설명

제품 세부 정보 전체보기
Editer Recommend

√ 本书由Scala发明人亲传弟子执笔完成,颇具权威性
√ 语言之外,系统性地梳理了并发及并发编程的核心知识
√ 重点讲解Future和Promise API等Scala专用并发框架的用法
√ 实例精心,兼顾理论与实践,既启发编程思路又面向实战方法
Content Description

免费的性能午餐已经结束――Intel、AMD 和 Sparc、PowerPC 等主要的处理器生产厂商,从前使用的提高 CPU 性能的传统方法已经走到尽头,单核处理器的主频多年来一直踏步不前,当今主流的CPU 制造技术是超线程和多核架构。面对计算机性能的挑战和硬件架构的改变,迷惘的软件开发者们应何去何从?本书为大家展示了一条光明的康庄大道!

《Scala 并发编程》由 Scala 语言的发明者,瑞士洛桑联邦理工大学教授 Martin Odersky 的爱徒 Aleksandar Prokopec 博士撰写。作者根据自己在 Scala 语言开发团队中的工作经验,全面地介绍了并发编程技术。这些并发编程技术包括:并发程序设计的基础知识和背景知识、常用并发实用组件(如线程池、原子变量和并发集合)的用法、Scala 专用并发框架(Future 和 Promise API)的用法、Scala 并行集合框架的用法、使用响应式扩展框架编写基于事件的程序和异步程序的方式、用于编写事务程序的 ScalaSTM库以及 Actor 编程模型和 Akka 框架。作者在本书中列举的实例既介绍了理论知识又展示了实践方法,同时还能够开拓读者的编程思路。此外,作者还在每章末尾提供了大量编程习题,帮助读者测试和巩固知识。

Author Description

Aleksandar Prokopec,是一位软件开发者,同时也是并发和分布式编程技术研究者。他拥有克罗地亚萨格勒布大学电子工程和计算学院的计算机专业硕士学位和瑞士洛桑联邦理工大学(EPFL)的计算机科学专业博士学位。作为 EPFL 博士助教和 Scala 语言开发团队成员,他积极为 Scala 编程语言做贡献,研究并发编程抽象、并行数据编程支持和 Scala并发数据结构。他编写了 Scala Parallel Collections 框架,这是一个高级的 Scala 并行数据编程库。他还参加了多个 Scala 并发库开发小组,开发了 Future、Promise 和 ScalaSTM 等抽象。


苏宝龙,1999年毕业于辽宁石化大学计算机系,从事过计算机硬件维修、网络和网站架设等计算机专业实践工作。投身计算机图书翻译行业已有十余年,译著超过三十余部,是一位优秀的、负责任的译者。

Comments

本书详细介绍了最佳的并发编程习惯,以及当前流行的高级Scala并发库的用法。本书先介绍在JVM中编写并发程序的基础知识,并概括介绍了Java内存模型的基础结构,然后展示了一些经典的并发程序构建材料,如原子变量、线程池、并发数据结构和并发事务的要点。之后本书介绍了多种专门与特定任务对应的高级并发抽象。最后,本书总结了这些并发库的用法和将它们组合到一起使用的方式。
□ 在现代多处理器系统(尤其是JVM并发模型)中,编写并发程序的基础知识
□ 使用简单的、低等级并发基元创建高性能并发系统的方式
□ 使用Future和Promise对象在并发计算中实现异步操作
□ 使用并行数据集合,以无缝方式提高顺序程序的性能
□ 通过Rx式事件流实现响应式和基于事件的程序
□ 使用内存事务数据模型,设计安全、可伸缩的且易于组装的程序
□ 编写具有透明性的、可部署到多台计算机上的分布式应用程序
□ 根据具体情况选择正确并发抽象的技巧,以及在大型应用程序中整合多种并发框架的方式
Catalogue

前言 XVII

1 简介 1

2 JVM 和Java 内存模型中的并发处理方式 13

3 构建并发程序的传统材料 47

4 使用Future 和Promise 对象编写异步程序 85

5 数据并行集合 121

6 使用Reactive Extensions 编写并发程序 153

7 基于软件的事务内存 189

8 Actor 227

9 实用并发技术 269

Book Abstract


并发和并行编程技术已经从内核程序设计和高性能计算等尖端领域延伸而出,发展成为每位程序员都必备的知识。当前并行和分布式计算系统已经变成了一种规范,大多数应用程序都使用并发处理方式,有些程序是为了提高性能,也有些程序是为了处理异步事件。
目前,大多数开发者都没有做好迎接这场变革的准备工作。也许他们在学校学习过传统的并发模型(基于线程和锁的),但是这类模型无法在确保可接受生产效率的前提下,以可靠的方式处理海量的并发工作。而且,线程和锁不仅难以使用还易于出错。开发者如果想要提高自己的水平,就必须使用等级更高且可组合性更高的并发抽象。
15 年前,我设计了Scala 语言的前身Funnel 语言。Funnel 是一种实验性编程语言,其核心中含有并发语义。这门语言将所有编程概念都表现为,以functional Net 模型(joincalculus 模型的面向对象版本)为基础的语法糖。尽管join calculus 是非常优秀的理论,但经过一些实验后,我们认识到并发问题是多层面的,无法通过单一形式解决它。解决所有并发问题的万能灵药是不存在的;正确的解决方式是对症下药。你是否想要定义用于回应事件或数据流的异步计算?是否想要创建用于通过消息进行通信的独立实体?是否想要为可变数据定义事务?是否想要通过并行处理方式提高性能?Scala 语言提供了完成所有这些任务的抽象:Future 类、响应式事件流、Actor 类、事务内存和并行集合。
Scala 和这本书使我们走到了一起。当前有如此多的优秀并发抽象,通过编程语言以硬编码的方式实现它们好像意义不大。但我们通过Scala 努力实现的目标,是能够在用户代码和库中更轻松地定义高级抽象的。通过这种工作模式,开发者可以定义用于处理各种并发程序设计层面的模块。所有这些模块都会建立在由主机系统提供的低等级内核上。现在回过头来看,这种工作模式确实取得了很好的效果。Scala 拥有当今功能最强、结构最简洁的并发编程库。本书将带你领略其中最重要的几个库的风采,使你了解这些库的擅长领域和使用它们的方式。
不是计算机专家就写不好计算机书籍。本书的作者Aleksandar Prokopec 编写过多个最流行的Scala 并发和并行编程库,他还发明过多个精妙的数据结构和算法。在推出这本书的同时,他还创建了网上教程和权威参考站点。我相信本书能够成为所有Scala 并发和并行程序开发者的良师益友。我期望这本书能够成为对并发领域感兴趣的人的书架藏品,因为他们都预见到了正在快速发展的并发计算领域的美好未来。Martin Odersky
Scala 语言的发明者,瑞士洛桑联邦理工大学教授
Introduction

并发处理方式无处不在。随着多核处理器在消费者市场中崛起,并发编程技术也在软件开发行业内取得了霸主地位。并发编程技术以前就在程序或计算机系统中被用于实现异步计算,并且自成一个学术领域,而现在并发程序设计已经变成了开发人员普遍使用的软件开发技术。因此,高级并发框架和库正在以惊人的速度发展。近年来,并发计算领域呈现出了与文艺复兴类似的蓬勃发展景象。

随着现代编程语言和并发框架抽象等级的提高,了解和使用这些语言和框架的时机已经变为极为重要的知识。仅掌握经典并发和异步基元(如线程、锁和监控器)的使用方式,已经不足以应对当前的形势。高级并发框架既可以解决传统并发问题,也可以为特定任务做出调整。因此,高级并发框架逐渐占领了并发编程领域。

本书介绍Scala 语言高级并发编程技术。本书不仅详细介绍了各种并发主题,还介绍了并发编程的基础理论。同时,本书也介绍了多种主要的现代并发框架、这些框架的语义细节和使用这些框架的方式。这样做的目的是展示重要的并发抽象,同时让你了解在实践中使用这些抽象的方式。

我们相信当你阅读了这本书后,既可以掌握坚实的并发编程理论基础,又能够获得编写正确、高效并发程序的实用技巧。这些技巧是通向现代并发编程专家之路的基石。希望本书能够为你带来快乐。

本书的结构

本书的主要目标是帮助你掌握开发正确、高效并发程序的必备技巧。获得技巧的最佳方式是在实践中使用它。因此,获得编程技巧的最佳方式,是亲手编写程序。本书旨通过一系列精心挑选的案例程序,全方位向你展示并发编程技术,从而使你掌握使用Scala语言编写并发程序的方式。这些案例程序包括从最简单的Hello World 示例程序,到错综复杂的高级并发程序。

本书中程序的一个最大共同点是,既简洁又独立。选取这类程序的优点有两个。首先,你可以不受干扰地学习大多数案例程序。尽管我们建议你按照先后顺序阅读本书的各个章节,但如果你想要先关注某个主题也不会有问题。其次,简洁性可以确保每个新概念都能够易于被掌握和理解。通过简单的示例程序,理解原子处理方式、内存争用和忙等待等问题要容易得多。但这不意味着这些示例程序,仅是为展示这些概念而专门编写的;尽管有些案例程序可能会被删去不相关的部分,但每个案例程序都是选自现实世界的真实案例。我们强烈建议你在阅读本书的过程中,亲手编写和运行这些示例程序,而不应仅是消极地阅读它们。每个案例程序都会向你展示一个新概念,但是你只有亲手在实践中使用这些概念,才能彻底理解它们。通过亲手运行并发程序并观察其特殊效果获得的经验,比仅从纸上阅读它得到的经验要宝贵得多。因此,你应该下载SBT,并在阅读本书前创建一个空白项目,这一点请参阅本书中介绍的详细步骤。本书选取的案例程序都比较短小,从而使你能够毫无压力地尝试它们。本书每一章的末尾都有一组编程练习。这些练习专门用于测试你对该章内容的理解程度。我们建议你在阅读完一章内容后,至少做几道该章末尾的练习题。在大多数情况中,我们会避免展示API 方法和它们的确切签名。这样做的原因有多个。

首先,你随时可以在网上学习ScalaDoc 文档介绍的API。本书如果重复这些内容会浪费一些篇幅。其次,软件永远都处于不断变化的状态中。尽管Scala 并发框架的设计者们努力使这些API 具有稳定性,但这些方法的名称和签名也可能会偶尔改变。本书介绍了改变可能性不高的许多重要并发工具的语义,使用这些工具足以编写并发程序。本书的目标不是事无巨细地介绍Scala 并发API 的所有知识。本书旨在介绍最重要的并发编程概念。掌握了本书介绍的知识后,你不仅可以阅读网上文档介绍的补充资料,还可以明确寻找这些资料的方向。本书不是详细介绍每个方法确切语义的API 参考文档,教授你从这些参考资料获取知识的方式才是本书的目的。当你阅读了本书的内容后,你不仅可以了解各种并发库不同的运行方式,还能获得编写并发程序的思路。

本书的内容

本书根据各个并发编程主题,划分为多个章节。本书的内容涵盖Scala 运行时系统中的基础并发API、较复杂的并发基元和高级并发抽象概要。

第1 章介绍编写并发程序的原因和一些背景知识。本章也介绍了Scala 编程语言的基础知识,以便使你能够顺畅地阅读本书后面介绍的内容。

第2 章介绍并发程序设计的基础知识。本章介绍了使用线程的方式、防止以并发方式访问共享内存的方式,以及Java 内存模型(JMM)。__第3 章介绍常用的并发实用组件,如线程池、原子变量和并发集合。本章还着重介绍了使用并发集合与Scala 语言功能进行交互的方式。本书将重点放在高等级的现代并发编程框架上;因此,虽然本章概述了传统的并发编程技巧,但并非将重点放在这个方面。

第4 章是第一个介绍Scala 专用并发框架的章节。本章介绍了Future 和Promise API,以及在编写异步程序时正确使用这些API 的方式。

第5 章介绍Scala 并行集合框架。本章介绍了在条件允许的情况下,通过并行方式处理集合操作的方式,以及通过这种方式提高性能的手段。

第6 章介绍使用响应式扩展框架编写基于事件的程序和异步程序的方式。本章会介绍事件流操作与集合操作的对应关系、在线程之间传递事件的方式和使用事件流设计响应式用户界面的方式。

第7 章介绍用于编写事务程序的ScalaSTM 库,使用该库可以获得更加安全、更加直观的共享内存编程模型。本章会介绍使用可伸缩的内存事务防止多个线程以并发方式访问共享内存的方式,还会介绍减少死锁和竞态条件的方式。

第8 章介绍Actor 编程模型和Akka 框架。本章会介绍编写在多台计算机上运行的、以透明方式传递消息的分布式程序的方式。

第9 章总结了前面各章介绍过的多种并发库。本章会介绍根据指定问题选择正确并发抽象的方式,还会介绍当设计较大的并发应用程序时,将多种并发抽象组合到一起的方式。我们建议你根据先后顺序阅读各个章节,但这并非严格要求。如果你已经很好地掌握了第2 章介绍的内容,就可以直接学习大多数章节。对其他章节介绍的知识依赖程度较高的是第9 章,因为这一章是对前面介绍的各个主题的总结。

阅读本书前需要具备的知识

本节介绍阅读本书之前,你需要具备的知识。本节介绍了安装Java Development Kit(Java 开发工具集)的方式,它是用于运行Scala 程序的开发环境;还介绍了使用SimpleBuild Tool(SBT)项目构建工具运行各种示例程序的方式。阅读本书前无须具备IDE 知识。你可以根据自己的喜好选择编写代码的编辑器,如Vim、Emacs、Sublime Text、Eclipse、IntelliJ IDEA 和Notepad++等文本编辑器。

安装JDK

Scala 程序不会被直接编译为机器码,因此它们无法像可执行程序那样在各种硬件平台上直接运行。Scala 编译器生成的是一种中间代码——Java 字节码。要运行这种中间代码,你的计算机必须安装Java 虚拟机(JVM)软件。本节介绍下载和安装Java Development Kit的方式,该开发环境集成了Java 虚拟机和其他有用的工具。软件市场上有多个JDK 版本。我们建议你使用Oracle JDK 分发版本。你可通过下列步骤下载和安装这个版本的Java Development Kit:

1.在你的浏览器中打开URL:www.oracle.com/technetwork/java/javase/

downloads/index.html。

2.如果你无法打开这个URL,可以在搜索引擎中搜索关键字JDK Download。

3.一旦你找到Oracle 网站中的Java SE 下载链接,应下载与你当前使用的操作系统(如32 位或64 位的Windows、Linux 或者Mac OS X)对应的JDK 7 版本。

4.如果你使用Windows,那么只需运行安装程序即可。如果你使用Mac OS X,则需要打开dmg 存档才能安装JDK。如果你使用Linux,则需要将dmg 存档解压到XYZ 目录,并在PATH 变量中添加bin 子目录:export PATH=XYZ/bin:$PATH

5.现在你就能够在命令行界面中运行java 和javac 命令了。输入javac 命令,查看该命令是否可用(本书没有介绍配置这个命令的方式,但你可以通过运行它,查明它是否可用):

javac这样你的操作系统就安装好了JDK。要验证这一点,只需执行javac 命令,如第5步骤所示。

安装和使用SBT

SBT 是一种用于构建Scala 项目的命令行工具。它的作用是编译Scala 代码、管理依赖关系、进行持续编辑和测试、开发等。本书通篇都会使用SBT,管理项目的依赖关系和运

行示例程序。

通过下列步骤可以安装SBT:

1.浏览https://www.scala-sbt.org/。

2.下载与你所用平台对应的安装文件。如果你使用Windows,应下载msi 安装文件。如果你使用Linux 或Mac OS X,应下载zip 或tgz 归档文件。

3.安装SBT。如果你使用Windows,只需运行安装文件即可。如果你使用Linux 或Mac OS X,则应在主目录解压归档文件。

安装好SBT 后就可以使用它了。通过下列步骤可以创建新的SBT 项目:

1.如果你使用Windows,应打开命令行界面。如果你使用Linux 或Mac OS X,应打开一个终端窗口。

2.创建一个名为scala-concurrency-examples 的新目$ mkdir scala-concurrency-examples

3.切换到scala-concurrency-examples 目录:$ cd scala-concurrency-examples

4.创建一个用于存储示例程序的源代码$ mkdir src/main/scala/org/learningconcurrency/

5.使用编辑器创建定义文件build.sbt。该文件用于定义各种项目属性。应在项目的根目录(scala-concurrency-examples)中创建该文件。应向定义文件中添加下列内容(注意,必须保留空白行):name := "concurrency-examples"version := "1.0"scalaVersion := "2.11.1"

6.切换回终端窗口,并在项目的根目录运行SBT:

$ sbt

7.SBT 会启动一个响应式壳,我们可以使用该壳执行各种创建项目的命令。现在你就可以编写Scala 程序了。打开编辑器, 在src/main/scala/org/learningconcurrency 目录中创建一个名为HelloWorld.scala 的源代码文件。向HelloWorld.scala 文件中添加下列内容:package org.learningconcurrencyobject HelloWorld extends App {println("Hello, world!")}

切换回已经启动SBT 响应式壳的终端窗口,使用下面的命令运行这个程序:

> run

该程序运行后会输出下面的结果:

Hello, world!

通过上述步骤足以运行本书介绍的大部分示例程序。在运行这些示例程序时,偶尔可能会用到外部库。SBT 能够通过标准软件仓库自动解决部分外部库问题。在处理另一些外部库时,我们需要手动设置额外的软件仓库,因而需要向build.sbt 文件添加下面的代码:

resolvers ++= Seq(

"Sonatype OSS Snapshots" at

"https://oss.sonatype.org/content/repositories/snapshots",

"Sonatype OSS Releases" at

"https://oss.sonatype.org/content/repositories/releases",

"Typesafe Repository" at

"https://repo.typesafe.com/typesafe/releases/")

现在我们已经添加了所有必要的软件仓库,因而就能够添加一些具体库了。通过向build.sbt 文件添加下面的代码,我们就可以使用Apache Commons IO 库:libraryDependencies += "commons-io" % "commons-io" % "2.4"更改了build.sbt 文件的内容后,必须重新加载所有正在运行的SBT 实例。应在SBT的响应式壳中,输入下列命令:> reload

这能够使SBT 检测到定义文件的所有更改情况,并在必要时下载额外的软件包。不同的Scala 库拥有不同的命名空间,这种命名空间称为软件包。要获取指定软件包的内容,需要使用import 语句。当我们第一次在某个示例程序中使用指定的并发库时,总是会展示必要的import 语句组。如果之后还需要使用相同的库,我们不会重复列出相同的import 语句。与此类似,为简洁起见我们不会在示例代码中重复列出软件包声明。我们约定一章中的示例代码都处于同一软件包中。例如, 第2 章中的所有示例代码都处于

org.learningconcurrency.ch2 软件包中。该章中每个示例程序的源代码文件都以下列代码开头:

package org.learningconcurrency

package ch2

因为本书主要介绍并发和异步操作,所以许多示例程序都会含有主线程停止运行后仍继续运行的并发计算。为了确保这些并发计算操作能够执行完毕,我们会使用运行SBT 的JVM 实例中运行的大多数示例程序。因而向build.sbt 文件添加了下面的代码:

fork := false

在介绍需要在独立JVM 进程中运行的示例程序时,我们会做明确说明并列出详细的处理步骤。

使用Eclipse、IntelliJ IDEA 等IDE

使用Eclipse 或IntelliJ IDEA 等集成开发环境(IDE)的好处,是能够通过自动方式编写、编译和运行Scala 程序。这样就无须安装上一节介绍的SBT。你可以使用SBT 运行示例程序,也可以使用IDE 运行示例程序。

在使用IDE 运行本书的示例程序时有一点需要特别注意:Eclipse 和IntelliJ IDEA 之类的编辑器会在独立的JVM 进程中运行程序。如上一节所述,某些并发计算会在主线程停止后继续运行。为了确保这些计算操作能够执行完毕,有时需要在主执行流程的末尾添加sleep 语句,该语句会降低主线程的执行速度。本书的大多数示例程序已经添加sleep 语句,但某些示例程序需要你亲自添加该语句。

本书面向的读者

本书主要面向已经掌握Scala 顺序编程技术的开发者,以帮助这些开发者掌握编写正确并发程序的技术。本书假定你已经掌握了Scala 编程语言的基础知识。贯穿本书始终,我们都努力使用简单的Scala 功能,展示编写并发程序的方式。只要你具备Scala 的基础知识,了解各种并发主题就不会有困难。这并不意味着本书仅限于供Scala 开发者阅读。不论你拥有Java 或.NET 专业背景,或者仅是一名编程语言爱好者,都能够从本书介绍的内容中获得启迪。对面向对象和函数式编程有基本的了解,也是阅读本书的先决条件。

本书还从更广阔的视角,对现代并发编程技术做了详细介绍。即使你已经掌握了多线程计算或JVM 并发模型的基础知识,通过本书你也可以了解许多现代的高级并发实用组件。本书介绍的许多并发库仅处于进入主流编程语言的起步阶段,其中一部分是真正的尖端技术。

约定

本书使用多种字体区分多种信息。下面介绍这些字体和它们的含义。文本中的代码、数据库中表的名称、文件夹名称、文件名、文件扩展名、路径名称、URL 示例、用户输入信息和Twitter 账号使用下列字体:“然后,它会调用square 方法计算局部变量s 的值。”

代码块使用下面的字体:

object SquareOf5 extends App {

def square(x: Int): Int = x * x

val s = square(5)

println(s"Result: $s")

}

命令行界面中的输入信息和输出结果使用下列字体:

run-main-46: ...

Thread-80: New thread running.

run-main-46: ...

run-main-46: New thread joined.

新术语和重点词汇使用粗体。屏幕显示的信息、菜单和对话框中的内容使用下列字体:“单击Thread Dump 按钮后,Java VisualVM 会显示所有线程的堆栈跟踪信息,如下图所示:

下载示例程序的代码

你可以从https://www.broadview.com.cn 的“下载专区”,下载所有已购买的博文视点书籍的示例代码文件。

勘误表

尽管我们努力提高书籍的质量,但错误在所难免。如果你发现了我们书籍中的错误(不论是文字错误还是代码错误),请不吝指正。通过指出书中的错误,你不仅能够帮助其他读者,并且可以帮助我们提高后续版本的质量。如果你发现了错误,可以在博文视点网站相应图书的页面提交勘误信息。一旦你找到的错误被证实,你提交的信息就会被接受,我们的网站也会发布这些勘误信息。你可以随时浏览图书页面,查看已经发布的勘误信息。

명세서

상표 Jingdong book
브랜드 영역 China

면책성명

제품 가격, 포장, 사양 등의 정보는 예고 없이 변경될 수 있습니다. 적시에 제품 정보를 업데이트 할 수 있도록 최선을 다하지만, 받은 실제 제품을 참고하시기 바랍니다. 제품을 사용하기 전에 반드시 제품에 동봉된 라벨, 경고 및 설명을 읽어 주십시오.

상세정보 보기
찜한 목록에 추가
{{ $isZh ? coupon.coupon_name_sub : coupon.coupon_ename_sub | formatCurrency }}
{{__("Buy Directly")}} {{ itemCurrency }}{{ item.directly_price }}
수량
{{ quantity }}
{{ instockMsg }}
{{ limitText }}
{{buttonTypePin == 3 ? __("Scan to view more PinGo") : __("Scan to start")}}
JD@CHINA 판매
배송지
{{ __("Ship to United States only") }}
69이상 주문 시 무료 배송
정품 보증

장바구니에 추가됨

쇼핑 계속하기

당신을 위한 추천

{{ item.brand_name }}

{{ item.item_name }}

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

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

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

쿠폰

{{ coupon.coupon_name_new | formatCurrency }}
받기 받았음 마감
{{ getCouponDescStr(coupon) }}
{{ coupon.use_time_desc }}
곧 만료됩니다: {{ formatTime(coupon.use_end_time) }}

친구들과 공유하세요

취소

Yami 기프트카드 전용특가

기프트카드로 결제하면 전용특가를 받을 수 있습니다

규칙 설명

기프트카드 전용특가는 일부 상품에 대한 특혜가격입니다.

기프트카드 전용특가 상품 구매 시 E-기프트 카드 잔액으로 결제하고 기프트카드 잔액이 주문 내 상품의 총액을 지불하기에 충분하하 기프트카드 전용특가가 자동으로 활성화됩니다.

기프트 카드 잔액으로 결제하지 않거나 기프트카드 잔액이 전항의 요건을 충족하지 못할 경우 기프트카드 전용특가를 활성화할 수 없으며 상품은 정상 가격으로 구매할 수 있습니다.

기프트카드 전용특가 상품 구매 시 잔액이 부족할 경우 장바구니 또는 결제 페이지에서 "충전" 버튼을 클릭하여 기프트카드를 구매 및 충전할 수 있습니다.

기프트카드 전용특가가 있는 상품은 "전용특가"라는 특별한 가격표시가 표시됩니다.

질문이 있으시면 언제든지 고객 서비스에 문의하십시오.

Yami는 기프트카드 전용특가 관련 최종 해석권을 보유합니다.

Yami 판매

서비스 보장

Yami $49 이상 무료 배송
Yami 걱정 없는 반품/교환
Yami 미국에서 발송

배송 정보

  • 미국

    표준 배송 $5.99(알래스카, 하와이 제외), 최종 가격 $49 이상 시 무료 배송

    지역 배송 $5.99(캘리포니아, 뉴욕, 뉴저지, 매사추세츠, 펜실베이니아, 위 주의 일부 지역), 최종 가격 $49 이상 시 무료 배송

    2일 이내 배송(알래스카 및 하와이 포함) $19.99부터 시작

반품 및 교환 정책

Yami는 고객님께 최상의 A/S를 제공하고, 모든 분들이 Yami에서 안심하고 쇼핑할 수 있도록 노력하고 있습니다. Yami의 자영 상품은 반품 및 교환 조건을 충족하는 경우, 상품 수령 후 30일 이내에 반품 및 교환할 수 있습니다(식품은 품질 문제로 인해 7일 이내에 반품 및 교환이 가능합니다. 모든 고객이 안전하고 고품질의 제품을 받을 수 있도록 뷰티 제품은 개봉 또는 사용 후에는 품질 문제를 제외하고 환불 또는 반품을 제공하지 않습니다. 기타 특별 카테고리의 제품은 고객 서비스에 문의하시기 바랍니다).
이해와 지원에 감사드립니다.

상세정보 보기

Yami 판매

Yami E-기프트카드 사용 약관

구매 시 자동 충전을 선택한 경우, 주문 완료 후 기프트카드가 자동으로 계정에 충전됩니다.

구매 시 이메일 발송을 선택한 경우, 주문 완료 후 시스템이 자동으로 카드 번호와 비밀번호를 입력한 이메일로 발송합니다.

이메일을 보낼 때, 모든 사용자는 이메일에 있는 카드 번호와 비밀번호를 사용하여 기프트카드를 충전할 수 있으니, 이메일 정보를 잘 보관하세요.

이메일을 받는 데 문제가 있으면, 고객 서비스에 연락하여 처리해 주세요.

이메일을 보낼 때, 기프트카드가 교환되지 않았다면 이메일을 재발송할 수 있습니다. 이미 다른 사용자에 의해 교환된 경우에는 보상할 수 없습니다.

Yamibuy의 E-기프트카드는 자영 또는 제3자 상품 구매에 사용할 수 있습니다.

Yamibuy의 E-기프트카드는 유효 기간 제한이 없으며, 장기간 유효합니다.

Yami 전자 상품권의 금액은 여러 번에 나눠서 사용할 수 있습니다;

Yami 전자 상품권 업무 규칙의 최종 해석 권한은 Yami 웹사이트에 있습니다.

반품 및 교환 정책

이미 사용된 E-기프트카드는 환불이 불가능합니다.

판매자: JD@CHINA

서비스 보장

Yami $49 이상 무료 배송
Yami 최고의 A/S
Yami 미국 본토에서 발송

배송 정보

  • 미국

    표준 배송 $5.99(알래스카, 하와이 제외), 최종 가격 $49 이상 시 무료 배송

    지역 배송 $5.99(캘리포니아, 뉴욕, 뉴저지, 매사추세츠, 펜실베이니아, 위 주의 일부 지역), 최종 가격 $49 이상 시 무료 배송

    2일 이내 배송(알래스카 및 하와이 포함) $19.99부터 시작

반품 및 교환 정책

제품을 받으신 후 30일 이내에 제품을 반품하실 수 있습니다. 반품된 품목은 구매에 대한 원본 송장을 포함하여 원래 포장된 새 품목이어야 합니다. 고객이 자신의 비용으로 제품을 반품합니다.

JD@CHINA 판매

서비스 보장

Yami 점포간 $:amount 이상 구매 시 무료 배송
Yami 30일 반품/교환 보장

Yami-중국 집하창고

Yami는 중국 내 주요 우수매장에서 제품을 선별하여 모아 Yami 중국통합센터로 배송하며 택배를 합친 후 전국 각지의 주소로 배송해 드립니다. 점포간 무료 배송 조건은 최저 $69입니다. 여러 판매자가 제공하는 다양한 상품 중에서 원하는 상품을 선택하고 점포간 무료배송으로 저렴한 배송비를 쉽게 누릴 수 있습니다.

반품 정책

30일 이내 반품 및 교환 보증을 제공합니다. 제품은 새로 사용하지 않은 원래 포장에 구매 증명서가 첨부되어 있어야 합니다. 상품 품질 문제, 잘못된 배송, 배송 누락 등 판매자의 실수로 인한 경우 환불 처리됩니다. 기타 사유로 인한 반품 및 교환은 배송비는 고객이 자체로 부담하셔야 합니다. 모든 제품은 장거리 배송을 하기 때문에 간혹 간단한 외부 포장이 눌려 마모되는 등이 있지만 내부 품질 문제가 없는 경우 반품 및 교환할 수 없습니다.

배송 정보

Yami 중국집하배송 Consolidated Shipping 배송비 $9.99 ($69 이상 주문시 무료배송)

중국 판매자는 주문 후 영업일 기준 2일 후에 상품을 발송합니다. 모든 택배는 Yami 중국통합센터(특별한 상황 및 중국 내 개별 법정 공휴일 제외)에 도착하여 택배를 합친 후 UPS를 통해 미국으로 배송됩니다. UPS는 중국에서 발송 후 미국까지 평균 10영업일 정도 소요되며 직배송 주문 번호에 따라 수시로 추적 및 조회할 수 있습니다 전염병의 영향으로 현재 물류가 5일 정도 지연될 수 있습니다. 택배는 고객 서명이 필요합니다. 서명하지 않은 경우 고객은 택배가 분실될 위험을 부담하게 됩니다.

JD@CHINA 판매

서비스 보장

69이상 주문 시 무료 배송
정품 보증

배송 정보

Yami Consolidated Shipping배송비$9.99($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.

포인트 규칙

모든 품목은 Yamibuy 의 프로모션이나 포인트 이벤트에서 제외됩니다.

반품 및 교환 정책

제품을 받으신 후 30일 이내에 제품을 반품하실 수 있습니다. 반품된 품목은 구매에 대한 원본 송장을 포함하여 원래 포장된 새 품목이어야 합니다. 고객이 자신의 비용으로 제품을 반품합니다.

Yami

Yami 앱 다운로드

맨 위로 돌아가기

당신을 위한 추천

브랜드 스토리

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折

리뷰{{'('+ commentList.posts_count + ')'}}

당신의 체험을 공유하고 더 많은 사용자가 선택할 수 있도록 도와줍니다.

리뷰 작성
{{ totalRating }} 리뷰 작성
  • {{i}}별

    {{i}} 별

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

Yami Yami
{{ comment.user_name }}

{{ showTranslate(comment) }}접기

{{ strLimit(comment,800) }}전체 보기

Show Original

{{ comment.content }}

Yami
모두 보기

{{ formatTime(comment.in_dtm) }} 구매 완료 {{groupData}}

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

{{ showTranslate(comment) }}접기

{{ strLimit(comment,800) }}전체 보기

Show Original

{{ comment.content }}

Yami
모두 보기

{{ formatTime(comment.in_dtm) }} 구매 완료 {{groupData}}

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

조건에 맞는 리뷰가 없습니다

리뷰 상세

Yami Yami

{{ showTranslate(commentDetails) }}접기

{{ strLimit(commentDetails,800) }}전체 보기

Show Original

{{ commentDetails.content }}

Yami
모두 보기

{{ formatTime(commentDetails.in_dtm) }} 구매 완료 {{groupData}}

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

내용을 입력하세요

답변{{'(' + replyList.length + ')'}}

Yami Yami

{{ showTranslate(reply) }}접기

{{ strLimit(reply,800) }}전체 보기

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')}}

내용을 입력하세요

취소

지금까지의 모든 리뷰입니다!

리뷰 작성하기
상품 평점

댓글을 입력하세요.

  • 좋은 닉네임이 당신의 리뷰를 더 인기 있게 만들 것입니다!
  • 여기에서 닉네임을 변경하면 개인정보의 닉네임도 같이 변경됩니다.
리뷰를 남겨주셔서 감사합니다
당신의 좋은 리뷰는 우리 커뮤니티가 아시아 최고의 상품을 찾는 데 도움이 됩니다.

신고하기

취소

이 리뷰를 삭제하시겠습니까?

취소

최근 본 상품

브랜드 스토리

Jingdong book