- JAVA多线程设计模式之Guarded Suspension
八达鸟
java多线程设计模式javaguard
JAVA多线程设计模式之GuardedSuspension一、什么是GuardedSuspension模式Java中是使用while语句来检查条件,使用wait方法来执行等待的。当条件发生变化时,使用notify/notifyAll方法发出通知,这就是GuardedSuspension模式。二、示例程序在这个程序中,一个线程(ClientThread)会将请求(Request)的实例传递给另一个线
- 多线程设计模式-Guarded Suspension模式
zjyfree
设计模式java前端
概念Suspension是“挂起”、“暂停”的意思,而Guarded则是“担保”的意思,连在一起就是确保挂起。当线程在访问某个对象时,发现条件不满足,就暂时挂起等待条件满足时再次访问。GuardedSuspension设计模式是很多设计模式的基础,比如生产者消费者模式,同样在Java并发包中的BlockingQueue中也大量使用到了GuardedSuspension设计模式。publicclas
- 二.多线程设计模式篇-2.6 Guarded Suspension设计模式
weixin_42868638
#多线程
1.概念如果执行现在的处理会造成问题,就让执行处理的线程等待。这种模式通过让线程等待来保证实例的安全性2.核心思想当且仅当服务进程准备好时,才提供服务。设想一种场景,服务器可能会在很短时间内承受大量的客户端请求,客户端请求的数量可能超过服务器本身的即时处理能力,而服务端程序又不能丢弃任何一个客户请求。此时,最佳的处理方案莫过于让客户端请求进行排队,由服务端程序一个接一个处理。这样,既保证了所有的客
- java多线程:Guarded Suspension设计模式
╭╯Erica
设计模式java设计模式多线程
GuardedSuspension设计模式:Guarded是被保护的,Suspension暂停的,当一个线程正在做某件事,这件事的优先级比较高不想被打断,可以考虑该设计模式。/***GuardedSuspension设计模式*请求**/@GetterpublicclassRequest{privatefinalStringvalue;publicRequest(Stringvalue){this.
- 33 - Guarded Suspension模式 等待唤醒机制的规范
坯子蔡
并发编程多线程并发编程多线程模式保护性暂停
GuardedSuspension模式等待唤醒机制的规范1.GuardedSuspension模式2.扩展GuardedSuspension模式3.Dubbo源码分析4.总结 前不久,同事小灰工作中遇到一个问题,他开发了一个Web项目:Web版的文件浏览器,通过它用户可以在浏览器里查看服务器上的目录和文件。这个项目依赖运维部门提供的文件浏览服务,而这个文件浏览服务只支持消息队列(MQ)方式接入。
- 多线程基础之设计模式Guarded Suspension模式
canxiusi
多线程学习基础之设计模式设计模式学习java后端
一.GuardedSuspension模式Guarded是被守护,被保卫的意思,Suspension则是“暂停的意思”,如果执行现在的处理出现问题,就让执行处理的线程进行等待,这就是GuardedSuspension模式,它是通过让线程等待保证实例的安全性二.示例程序类名说明Request表示一个请求类RequestQueue依次存放请求的类ClientThread发送请求的类ServerThre
- 读《图解java多线程设计模式》总结--Guarded Suspension
一个平凡的IT农民工
40程序员补学java多线程
1,从名字上看就是增加了守护功能的一种设计模式,目的是确保在多线程条件下各线程能正常操作共享资源,如果触发了守护功能,相关的线程就必须等待,直到守护功能确保不会出现操作异常才会让线程继续执行下去。2,与SingleThreadedExecution相似都是为了保护共享资源,只不过SingleThreadedExecution是无条件的多线程互斥,而GuardedSuspension是在守护条件不满
- java多线程系列之模式|第一篇-Guarded Suspension pattern
仙路尽头谁为峰
多线程java多线程
GuardedSuspensionpattern模式作者注:该系列文章基于《java线程设计模式》撰写,只用于学习和交流。含义:多线程运行,当前线程没有达到警戒条件时,线程会进入等待直到被唤醒,该模式被称为GuardedSuspensionpattern模式。其顺序图如下:代码示例Request类,请求封装的实体类,这是设计模式中很常见的方式,这样有利于承载及存储。packagepattern.g
- 设计模式之多线程版本的if------Guarded Suspension模式
小阳小朋友
设计模式设计模式java开发语言
系列文章目录设计模式之避免共享的设计模式Immutability(不变性)模式设计模式之并发特定场景下的设计模式Two-phaseTermination(两阶段终止)模式设计模式之避免共享的设计模式Copy-on-Write模式设计模式之避免共享的设计模式Thread-SpecificStorage模式文章目录系列文章目录GuardedSuspension是什么?从哪儿来应用场景样例提示:以下是本
- JAVA多线程设计模式篇 4、Guarded Suspension 模式——等我准备好了再来
悟空学编程
JAVA多线程设计模式篇java设计模式开发语言后端
文章目录总结GuardedSuspension模式是多线程设计模式中的一个基础模式,不仅在应用程序中使用频繁,而且也有其他模式会用到它。模式核心是一个受保护方法(GuardedMethod)。该方法执行其所要真正执行的操作时需要满足特定的条件(Predicate,以下称之为保护条件)。当该条件不满足时,执行受保护方法的线程会被挂起进入等待(WAITING)状态,直到该条件满足时该线程才会继续运行。
- Guarded Suspension模式--适合等待事件处理
helloworld1238888
java开发语言
Guarded是被守护、被保卫、被保护的意思,Suspension则是暂停的意思。如果执行现在的处理会造成问题,就让执行处理的线程进行等待---这就是GuardedSuspension模式。模式通过让线程等待来保证实例的安全性。一个线程ClientThread会将请求Request的实例传递给另一个线程ServerThread。这是一种最简单的线程间通信。Request表示一个请求的类Reques
- suspension 2012.6.14
何青猊
I'minthestateofsuspension,Thatistosay,Ihavenoconnectionwithanyone.Peoplecome,peoplego,liketheleavesgetgreenandyellow.Ihaven'tmetanotheregoforaqutelongwhile.Ihavenothingurgetodo.Ihavenothingtoworryabou
- 常见合成代谢药物名词
AAA增肌减脂C计划
cycle名词认知C——Cycle意思是“循环周期”。其实这个“C”是应该最早拿出来解释的。合成代谢药物都有各自的使用周期,根据药物不同,或数周或数月,然后停药休整进入PCT阶段,之后可再次开始使用。这种循环的方式就被称为Cycle。SUSP——Suspension意思是“悬浊液”某些药物不溶于水,故配置为水剂时就形成了悬浮着无数不溶颗粒的悬浊液。比如WIN的注射型和未酯化处理的纯睾酮注射液,就是
- 微信小程序:实现可拖动悬浮图标(列表页添加按钮)
遇到问题不要慌
微信小程序小程序html5
实现的效果截图主要代码.wxml图标.wxss/**可拖动悬浮按钮样式表**/.btn_Suspension{position:fixed;height:90rpx;width:90rpx;background-color:rgba(255,255,255,0.755);border-radius:100%;display:flex;align-items:center;justify-conte
- Nue JS 造全新的 Web 生态
ejinxian
前端javascript开发语言nuejsvue.js
NueJS是最近开源的Web前端项目,用于构建用户界面,体积非常小(压缩后2.3kb)。NueJS支持服务器端渲染(SSR)、反应式组件和“同构”组合("isomorphic"combinations)。Vue.js、React.js或Svelte,但没有hooks,effects,props,portals,watchers,provides,injects,suspension这些抽象概念,开
- 多线程设计模式【多线程上下文设计模式、Guarded Suspension 设计模式、 Latch 设计模式】(二)-全面详解(学习总结---从入门到深化)
童小纯
Java基础深化和提高java多线程设计模式
目录多线程上下文设计模式Balking设计模式DocumentAutoSaveThreadDocumentEditThreadGuardedSuspension设计模式什么是GuardedSuspension设计模式GuardedSuspension的示例Latch设计模式TwoPhaseTermination设计模式什么是TwoPhaseTermination模式TwoPhaseTerminat
- 英二阅读单词【2011 t4】
irel1a_3
阅读单词阅读单词
危机重重的欧盟continent大陆chronic积习难改的,慢性的acute严重的currency货币,通货converge会聚,集中devaluation贬值debate辩论disintegration崩解stuck卡住,束手无策stricter严格sanction制裁obey服从suspension暂停ministerial部长的council委员会rigour严谨interference干
- Java 多线程模式 —— Guarded Suspension 模式
fengzhizi715
GuardedSuspension模式的介绍我们只从字面上看,GuardedSuspension是受保护暂停的意思。GuardedSuspension模式在实际的并发编程中,GuardedSuspension模式适用于某个线程需要满足特定的条件(Predicate)才能执行某项任务(访问受保护对象)。条件未满足时,则挂起线程,让线程一直处于WAITING状态,直到条件满足后该线程才可以执行任务。有
- Android效果,SideBar 和RecyclerView联动的悬浮效果
卖臭豆腐的王致和
转载请注明原创出处,谢谢!GitHub:@Ricco类似效果图类似效果图↑类似效果图↑类似效果图↑重要的画说三遍publicclassMyActivityextendsBaseActivityimplementsSideBar.OnSelectListener{@Bind(R.id.tv_suspension_bar)TextViewtvSuspensionBar;//悬浮@Bind(R.id.r
- Java多线程 Guarded Suspension设计模式
目录1.GuardedSuspension模式的结构2.GuardedSuspension模式的简单实现前言:GuardedSuspension意为保护暂停,其核心思想是仅当服务进程准备好时,才提供服务。设想一种场景,服务器可能会在很短时间内承受大量的客户端请求,客户端请求的数量可能超过服务器本身的即时处理能力,而服务端程序又不能丢弃任何一个客户请求。此时,最佳的处理方案莫过于让客户端要求进行排队
- The longest suspension bridge in the world
南有乔木殷其雷
vocabulary1harbour港口2midst中间3immortal永生的,流芳百世4situation地点,地方5span跨度6cable缆索7immense极大的,巨大的8concrete混凝土9length根,段10suspend悬挂11elegant优美别致的12faintly细微地writting1Hedescribeditasaveryagreeablesituationloca
- 40 Clifton Suspension Bridge - Bristol, England
Chineseyoyo
CliftonSuspensionBridge-Bristol,EnglandQuickDescription:HistoricsuspensionbridgespanningtheAvonGorgeinwesternpartofBristol,England.Location:SouthWestEngland,UnitedKingdomLongDescription:"TheCliftonSus
- 多线程设计模式-高并发请求缓存模式(Guarded Suspension)
睡醒的土豆
java多线程设计模式java并发编程队列设计模式多线程
高并发请求缓存队列设计模式一,什么是GuardedSuspension模式如果执行现在的处理会造成问题,就让执行处理的线程等待。这种模式通过让线程等待来保证实例的安全性二,实现一个简单的线程间通信的例子一个线程(ClientThread)将请求(Request)的实例传递给另外一个线程(ServerThread)Request:线程实例RequestQueue:存放请求(Request)实例的队列
- 保护性暂挂模式(Guarded Suspension)
人圭日月
多线程
核心思想如果某个线程执行特定的操作前需要满足一定的条件,则在该条件未满足时将线程暂停运行(即暂挂线程,使其处于等待(waiting)状态,直到该条件满足时才继续运行)publicclassRequets{finalprivateStringvalue;publicRequets(Stringvalue){this.value=value;}publicStringgetValue(){return
- 并发设计模式之Guarded Suspension模式
柳婼
其他
-原文链接:http://www.joyhwong.com/2016/11/19/并发设计模式之guarded-suspension模式/GuardedSuspension意为保护暂停,其核心思想是仅当服务进程准备好时,才提供服务。设想一种场景,服务器可能会在很短时间内承受大量的客户端请求,客户端请求的数量可能超过服务器本身的即时处理能力,而服务端程序又不能丢弃任何一个客户请求。此时,最佳的处理方
- 多线程设计模式解读1—Guarded Suspension(保护性暂挂模式)
drjava_2019
大家好,今天我们给大家介绍一个多线程设计模式的一个概念,我们平时业务代码写得比较多,因此,如果刚上手写比较复杂多线程代码,很有可能会埋下一些坑,而这些坑一时之间都是很难发现,需要经过严格测试,甚至上线运行之后才会在生产环境显现出来。大家应该听过面向对象编程的23种设计模式吧,它就是在特定场景下提供针对某一问题的可复用解决方案,而多线程设计模式是在多线程编程领域的设计模式。今天给大家介绍其中一个设计
- Java多线程相关知识【15】--设计模式--确保挂起模式(Guarded Suspension)
努力的小白X
#Java多线程JavaJava多线程设计模式确保挂起模式GuardedSuspension
文章目录Java多线程相关知识【15】--设计模式--确保挂起模式(GuardedSuspension)1.问题的引入2.问题的解决3.实现的代码请求队列请求体连接端服务端使用方法菜鸟的一个学习笔记,欢迎大神批评指正。Java多线程相关知识【15】–设计模式–确保挂起模式(GuardedSuspension)1.问题的引入一个线程正在做一个非常关键的任务,这时,有一个其他的线程让当前线程做其他的事
- 《Java多线程编程实战》——第4章 Guarded Suspension(保护性暂挂)模式
wsjtwmy
多线程
一个线程等待另一个线程完成一定的操作,才能继续运行。核心思想是如果某个线程执行特定的操作前需要满足一定的条件,则在该条件未满足时将该线程暂停运行(waiting)。类图如果频繁出现保护方法被调用时保护条件不成立,那么保护方法的执行线程就会频繁地被暂挂和唤醒,而导致频繁的上下文切换。为了保证保护条件中涉及的变量的内存可见性而引入ReentrantLock锁。使用该锁时需要注意临界区中的代码无论是执行
- 线程基础(三十一)
wolfcode_cn
杂集叩丁狼教育Java互联网程序员线程基础
本文作者:王一飞,叩丁狼高级讲师。原创文章,转载请注明出处。接上篇,本篇讲解线程另外一个设计模式:GuardedSuspensionPattern.概念Guarded是被守护,被保卫,被保护的意思,Suspension则是暂停的意思.如果不满足执行条件,先让当前处理的线程暂停.这就是GuardedSuspension模式.参与角色GuardedSuspension模式参与角色:GuardedObe
- 车辆基础理论
冷雨夜刀锋
k_Phy_physic
西昌.何雨锋本文谢绝转载一、车辆的坐标理论理论上说一辆车有3个坐标转向轴,分别是:YAW轴-----车辆在水平面的转动对应车顶车底方向Pitch轴-------车辆前后的翻滚对应两个车门方向Roll轴---------车辆的平翻对应车前后方向2.1.1.3车辆悬挂系统(Suspension)车辆的悬挂系统是一个机械系统,是一个装了很多轮子的车辆底盘。在现实生活中车辆有许多不同类型的悬挂,每一种都有
- ASM系列四 利用Method 组件动态注入方法逻辑
lijingyao8206
字节码技术jvmAOP动态代理ASM
这篇继续结合例子来深入了解下Method组件动态变更方法字节码的实现。通过前面一篇,知道ClassVisitor 的visitMethod()方法可以返回一个MethodVisitor的实例。那么我们也基本可以知道,同ClassVisitor改变类成员一样,MethodVIsistor如果需要改变方法成员,注入逻辑,也可以
- java编程思想 --内部类
百合不是茶
java内部类匿名内部类
内部类;了解外部类 并能与之通信 内部类写出来的代码更加整洁与优雅
1,内部类的创建 内部类是创建在类中的
package com.wj.InsideClass;
/*
* 内部类的创建
*/
public class CreateInsideClass {
public CreateInsideClass(
- web.xml报错
crabdave
web.xml
web.xml报错
The content of element type "web-app" must match "(icon?,display-
name?,description?,distributable?,context-param*,filter*,filter-mapping*,listener*,servlet*,s
- 泛型类的自定义
麦田的设计者
javaandroid泛型
为什么要定义泛型类,当类中要操作的引用数据类型不确定的时候。
采用泛型类,完成扩展。
例如有一个学生类
Student{
Student(){
System.out.println("I'm a student.....");
}
}
有一个老师类
- CSS清除浮动的4中方法
IT独行者
JavaScriptUIcss
清除浮动这个问题,做前端的应该再熟悉不过了,咱是个新人,所以还是记个笔记,做个积累,努力学习向大神靠近。CSS清除浮动的方法网上一搜,大概有N多种,用过几种,说下个人感受。
1、结尾处加空div标签 clear:both 1 2 3 4
.div
1
{
background
:
#000080
;
border
:
1px
s
- Cygwin使用windows的jdk 配置方法
_wy_
jdkwindowscygwin
1.[vim /etc/profile]
JAVA_HOME="/cgydrive/d/Java/jdk1.6.0_43" (windows下jdk路径为D:\Java\jdk1.6.0_43)
PATH="$JAVA_HOME/bin:${PATH}"
CLAS
- linux下安装maven
无量
mavenlinux安装
Linux下安装maven(转) 1.首先到Maven官网
下载安装文件,目前最新版本为3.0.3,下载文件为
apache-maven-3.0.3-bin.tar.gz,下载可以使用wget命令;
2.进入下载文件夹,找到下载的文件,运行如下命令解压
tar -xvf apache-maven-2.2.1-bin.tar.gz
解压后的文件夹
- tomcat的https 配置,syslog-ng配置
aichenglong
tomcathttp跳转到httpssyslong-ng配置syslog配置
1) tomcat配置https,以及http自动跳转到https的配置
1)TOMCAT_HOME目录下生成密钥(keytool是jdk中的命令)
keytool -genkey -alias tomcat -keyalg RSA -keypass changeit -storepass changeit
- 关于领号活动总结
alafqq
活动
关于某彩票活动的总结
具体需求,每个用户进活动页面,领取一个号码,1000中的一个;
活动要求
1,随机性,一定要有随机性;
2,最少中奖概率,如果注数为3200注,则最多中4注
3,效率问题,(不能每个人来都产生一个随机数,这样效率不高);
4,支持断电(仍然从下一个开始),重启服务;(存数据库有点大材小用,因此不能存放在数据库)
解决方案
1,事先产生随机数1000个,并打
- java数据结构 冒泡排序的遍历与排序
百合不是茶
java
java的冒泡排序是一种简单的排序规则
冒泡排序的原理:
比较两个相邻的数,首先将最大的排在第一个,第二次比较第二个 ,此后一样;
针对所有的元素重复以上的步骤,除了最后一个
例题;将int array[]
- JS检查输入框输入的是否是数字的一种校验方法
bijian1013
js
如下是JS检查输入框输入的是否是数字的一种校验方法:
<form method=post target="_blank">
数字:<input type="text" name=num onkeypress="checkNum(this.form)"><br>
</form>
- Test注解的两个属性:expected和timeout
bijian1013
javaJUnitexpectedtimeout
JUnit4:Test文档中的解释:
The Test annotation supports two optional parameters.
The first, expected, declares that a test method should throw an exception.
If it doesn't throw an exception or if it
- [Gson二]继承关系的POJO的反序列化
bit1129
POJO
父类
package inheritance.test2;
import java.util.Map;
public class Model {
private String field1;
private String field2;
private Map<String, String> infoMap
- 【Spark八十四】Spark零碎知识点记录
bit1129
spark
1. ShuffleMapTask的shuffle数据在什么地方记录到MapOutputTracker中的
ShuffleMapTask的runTask方法负责写数据到shuffle map文件中。当任务执行完成成功,DAGScheduler会收到通知,在DAGScheduler的handleTaskCompletion方法中完成记录到MapOutputTracker中
- WAS各种脚本作用大全
ronin47
WAS 脚本
http://www.ibm.com/developerworks/cn/websphere/library/samples/SampleScripts.html
无意中,在WAS官网上发现的各种脚本作用,感觉很有作用,先与各位分享一下
获取下载
这些示例 jacl 和 Jython 脚本可用于在 WebSphere Application Server 的不同版本中自
- java-12.求 1+2+3+..n不能使用乘除法、 for 、 while 、 if 、 else 、 switch 、 case 等关键字以及条件判断语句
bylijinnan
switch
借鉴网上的思路,用java实现:
public class NoIfWhile {
/**
* @param args
*
* find x=1+2+3+....n
*/
public static void main(String[] args) {
int n=10;
int re=find(n);
System.o
- Netty源码学习-ObjectEncoder和ObjectDecoder
bylijinnan
javanetty
Netty中传递对象的思路很直观:
Netty中数据的传递是基于ChannelBuffer(也就是byte[]);
那把对象序列化为字节流,就可以在Netty中传递对象了
相应的从ChannelBuffer恢复对象,就是反序列化的过程
Netty已经封装好ObjectEncoder和ObjectDecoder
先看ObjectEncoder
ObjectEncoder是往外发送
- spring 定时任务中cronExpression表达式含义
chicony
cronExpression
一个cron表达式有6个必选的元素和一个可选的元素,各个元素之间是以空格分隔的,从左至右,这些元素的含义如下表所示:
代表含义 是否必须 允许的取值范围 &nb
- Nutz配置Jndi
ctrain
JNDI
1、使用JNDI获取指定资源:
var ioc = {
dao : {
type :"org.nutz.dao.impl.NutDao",
args : [ {jndi :"jdbc/dataSource"} ]
}
}
以上方法,仅需要在容器中配置好数据源,注入到NutDao即可.
- 解决 /bin/sh^M: bad interpreter: No such file or directory
daizj
shell
在Linux中执行.sh脚本,异常/bin/sh^M: bad interpreter: No such file or directory。
分析:这是不同系统编码格式引起的:在windows系统中编辑的.sh文件可能有不可见字符,所以在Linux系统下执行会报以上异常信息。
解决:
1)在windows下转换:
利用一些编辑器如UltraEdit或EditPlus等工具
- [转]for 循环为何可恨?
dcj3sjt126com
程序员读书
Java的闭包(Closure)特征最近成为了一个热门话题。 一些精英正在起草一份议案,要在Java将来的版本中加入闭包特征。 然而,提议中的闭包语法以及语言上的这种扩充受到了众多Java程序员的猛烈抨击。
不久前,出版过数十本编程书籍的大作家Elliotte Rusty Harold发表了对Java中闭包的价值的质疑。 尤其是他问道“for 循环为何可恨?”[http://ju
- Android实用小技巧
dcj3sjt126com
android
1、去掉所有Activity界面的标题栏
修改AndroidManifest.xml 在application 标签中添加android:theme="@android:style/Theme.NoTitleBar"
2、去掉所有Activity界面的TitleBar 和StatusBar
修改AndroidManifes
- Oracle 复习笔记之序列
eksliang
Oracle 序列sequenceOracle sequence
转载请出自出处:http://eksliang.iteye.com/blog/2098859
1.序列的作用
序列是用于生成唯一、连续序号的对象
一般用序列来充当数据库表的主键值
2.创建序列语法如下:
create sequence s_emp
start with 1 --开始值
increment by 1 --増长值
maxval
- 有“品”的程序员
gongmeitao
工作
完美程序员的10种品质
完美程序员的每种品质都有一个范围,这个范围取决于具体的问题和背景。没有能解决所有问题的
完美程序员(至少在我们这个星球上),并且对于特定问题,完美程序员应该具有以下品质:
1. 才智非凡- 能够理解问题、能够用清晰可读的代码翻译并表达想法、善于分析并且逻辑思维能力强
(范围:用简单方式解决复杂问题)
- 使用KeleyiSQLHelper类进行分页查询
hvt
sql.netC#asp.nethovertree
本文适用于sql server单主键表或者视图进行分页查询,支持多字段排序。KeleyiSQLHelper类的最新代码请到http://hovertree.codeplex.com/SourceControl/latest下载整个解决方案源代码查看。或者直接在线查看类的代码:http://hovertree.codeplex.com/SourceControl/latest#HoverTree.D
- SVG 教程 (三)圆形,椭圆,直线
天梯梦
svg
SVG <circle> SVG 圆形 - <circle>
<circle> 标签可用来创建一个圆:
下面是SVG代码:
<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
<circle cx="100" c
- 链表栈
luyulong
java数据结构
public class Node {
private Object object;
private Node next;
public Node() {
this.next = null;
this.object = null;
}
public Object getObject() {
return object;
}
public
- 基础数据结构和算法十:2-3 search tree
sunwinner
Algorithm2-3 search tree
Binary search tree works well for a wide variety of applications, but they have poor worst-case performance. Now we introduce a type of binary search tree where costs are guaranteed to be loga
- spring配置定时任务
stunizhengjia
springtimer
最近因工作的需要,用到了spring的定时任务的功能,觉得spring还是很智能化的,只需要配置一下配置文件就可以了,在此记录一下,以便以后用到:
//------------------------定时任务调用的方法------------------------------
/**
* 存储过程定时器
*/
publi
- ITeye 8月技术图书有奖试读获奖名单公布
ITeye管理员
活动
ITeye携手博文视点举办的8月技术图书有奖试读活动已圆满结束,非常感谢广大用户对本次活动的关注与参与。
8月试读活动回顾:
http://webmaster.iteye.com/blog/2102830
本次技术图书试读活动的优秀奖获奖名单及相应作品如下(优秀文章有很多,但名额有限,没获奖并不代表不优秀):
《跨终端Web》
gleams:http