加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

Java能抵挡住JavaScript的进攻吗?

发布时间:2019-02-01 01:36:54 所属栏目:建站 来源:码农翻身刘欣
导读:JavaScript的袭击 公元2014年,Java 第八代国王终于登上了王位。 第一次早朝,国王坐在高高的宝座上,看着毕恭毕敬的大臣,第一次领会到了皇权的威力。 德高望重的IO大臣颤悠悠地走上前来:启禀陛下,昨日收到战报,有个叫做Node.js的番邦又一次向我国袭击

“确实受到了它的开导, 可是我的Node.x在架构和一些要害的抽象上和Node.js有很大差异。” 蒂姆欠盛意思地笑了笑,“先说说沟通的部门,既然都是异步操纵,那必定是通过变乱驱动的,以是都有一个变乱轮回。”

Java能匹敌住JavaScript的袭击吗?

IO大臣之前和Swing大臣聊过, 知道变乱轮回是怎么回事,这是一个相等迂腐的观念了。

无非就是有个线程在检测一个行列,假如行列中有变乱,就拿出来处理赏罚。

“只不外我这里有所差异,可以建设多个变乱轮回出来,好比每一个CPU焦点有一个,这样可以充实操作CPU的多核机能。”  蒂姆自得地说道。

Java能匹敌住JavaScript的袭击吗?

(4个CPU core, 4个变乱轮回)

IO大臣颔首暗示赞同, 他传闻Node.js仿佛只有一个主线程,没法直接操作多核的手段。想操作多核的话还得开多个历程才行。

异步操纵

“你图中的谁人Hanlder就是详细的营业代码地址地吧? 详细长什么样子啊,让我看看!”  IO大臣问道。

蒂姆赶忙呈上代码,这是简朴的Hello World。

  1. import io.vertx.core.AbstractVerticle;  
  2. public class Server extends AbstractVerticle {  
  3.   public void start() {  
  4.     vertx.createHttpServer().requestHandler(req -> {  
  5.       req.response()  
  6.         .putHeader("content-type", "text/plain")  
  7.         .end("Hello Word!");  
  8.     }).listen(8080);  
  9.   }  

这段代码天生了一个简朴的HTTP 处事器, 在8080端口监听, 每当有哀求来的时辰,都返回一个字符串“Hello World!”。

IO大臣一看,大为受惊:“你这代码不必要外部容器,本身就搞了一个HTTP处事器啊?”

“是的,这样我们就完全不消Tomcat了。 我把这种类起来一个名称,叫做Verticle, 陈设往后,这个Verticle就可以和一个变乱轮回关联了。每次有HTTP哀求过来,Node.x会封装成变乱,然后分配给它处理赏罚了。”

Java能匹敌住JavaScript的袭击吗?

真是个二愣子, IO大臣心想, 怪不得Tomcat对你不待见,你这个对象出来,他的位置不保啊!

IO大臣问道:“那对付数据库查询,你这个Handler,哦不,Verticle该怎么写? 查询数据库这么慢,岂不是把变乱轮回都阻塞了?什么工作都做不了了?”

“大人您忘了,我们这里操纵必需都是异步的,查询数据库也不破例。”

蒂姆说着展示了一段代码, 通过异步的方法来查询数据库。

  1. public class DatabaseVerticle extends AbstractVerticle{  
  2.     ......  
  3.     dbClient.getConnection(ar -> {  
  4.         if (ar.succeeded()) {  
  5.             SQLConnection connection = ar.result();  
  6.             connection.query("select .. from...", res -> {   
  7.                  if (res.succeeded()) {  
  8.                    ......  
  9.                  } else {  
  10.                    ......  
  11.                  }  
  12.           });  
  13.         } else {  
  14.            ......  
  15.         }  
  16.     });  

Java能匹敌住JavaScript的袭击吗?

IO大臣感应道:“唉,老了,真是不顶用了,连异步都忘了。对了,这些个Verticle看起来都是独立的,是被差异的线程挪用的,他们之间怎么举办交互啊?莫非也通过共享内存的方法?”

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读