- vertx
三笠爷
vert.x
vert.x是reactive(响应式编程),是一种思想,特点:事件驱动(发挥单台机器的性能):单台机器上,用少量线程处理大量并发异步处理请求(多个服务间通信阻塞较少,响应时间降低):https://vertx.io/官网基于netty的、运行在jvm之上的、支持多种编程语言的高性能异步、非阻塞、响应式全栈javaweb框架eclipse软件基金会顶级java开源项目之一在techempower.
- Vertx 使用 虚拟线程
zimoyin
开发语言java
Vertx是支持虚拟线程,并且很轻松的就能切换到虚拟线程,还能让异步代码用同步的写法1.部署虚拟线程verticle通过给部署设置进行setThreadingModel将线程模型设置为虚拟线程即可Vertxvertx=Vertx.vertx();AbstractVerticleverticle=newAbstractVerticle(){@Overridepublicvoidstart(){Htt
- 使用 Kotlin 将 Vertx 和 Springboot 整合
zimoyin
springbootkotlinjava
本篇文章目的是将Springboot和Vertx进行简单整合。整合目的仅仅是为了整活,因为两个不同的东西整合在一起提升的性能并没有只使用Vertx性能高,因此追求高性能的话这是在我来说不推荐。而且他们不仅没有提高很多性能甚至增加了学习成本一、整合流程首先呢目标是将Vertx最终整合成和使用Springbootweb一样简单的httpserver。步骤:获取Springboot所有的Bean注册路由
- python快速实现dbc转excel
大柠檬鲸
python开发语言
步骤1-安装canmatrix包打开cmd输入:python-mpipinstallcanmatrix步骤2-打开要转换dbc所在的文件夹路径步骤3-在下图的路径框中输入cmd后直接按回车键步骤4-输入cmd在弹出的cmd中输入canconvertxxx.dbctarget.xlsx其中xxx.dbc为要转换的dbc,target.xlsx为输出的excel在当前路径下即生成转换后的excel
- springboot与vertx异步并发对比
千寻_GHSA
springboot目前主要还是阻塞式响应,需要等到服务端计算完成,才会返回。vertx本身异步响应,客户端发出请求后,服务端计算完成后,通知返回。系统的处理能力会大大提升。针对同样的业务,做一个200并发的测试springbootspringboot的average在165秒vertxvertx的average在85秒从cpu的使用率对比vertx的CPU使用率较低;springboot的CPU
- vertx添加后获取记录id
Levi_9d29
直接用户queryWithParams方法执行添加sql就可以了,如果是postgresql需要在sql语句最后加上returningid,其他数据库没试过
- 程序媛在公司的进修之路(三)
小芹菜_4d69
这次隔了两周,因为是双周任务和总结,学习任务如下:学习vertx框架,重点学习core、web、dataaccess三个组件。在这之前自己什么框架也没有学过,包括MVC,,,,所以完全不知道该如何入手。大体自己的学习思路如下:1、直接上官网:https://vertx.io/docs/#web看手册,了解相关的概念的知识,运行出第一个helloword(例子都是官网现成的)。这里英文不好的就去看中
- 使用 curl multi interface 编写的高性能封装类和示例
fishjam
HTTPCurl性能优化curlmultiinterfaceHTTP
CurlMultiDemo使用libCurl的MultiInterface的一个简单封装类,支持功能:单线程+纯异步的Get/Post支持极高的性能(使用POST上传600+文件,仅耗时4~6秒)使用方式:1.编译或下载libcurl库,我采用的是vcpkg2.搭建或找一个支持MultiPart上传文件的服务器,如没有,可以使用vertx-upload3.VisualStudio(2015)打开工
- sklearn线性模型之Lasso回归
微小冷
#sklearnsklearn回归人工智能LassopythonLassoCV
文章目录Lasso简介Lasso类LassoCVLasso简介Lasso,即TheLeastAbsoluteShrinkageandSelectionOperator,是用于拟合稀疏系数的线性模型,其最小化目标函数为minw12n∥Xw−y∥22+α∥w∥1\min_w\frac{1}{2n}\VertXw-y\Vert^2_2+\alpha\Vertw\Vert_1wmin2n1∥Xw−y∥2
- sklearn岭回归
微小冷
#sklearnsklearn回归人工智能python岭回归
文章目录基本原理sklearn实现基本原理最小二乘法的判定条件是minw∥Xw−y∥22\min_w\VertXw-y\Vert_2^2wmin∥Xw−y∥22其中,minwF(w)\min_wF(w)minwF(w)表示F(w)F(w)F(w)最小时的www;www是拟合参数,x,yx,yx,y是变量。对于线性问题,可通过对www求导,得到F(w)F(w)F(w)极值处的www,具体表达式为
- 2019-01-19
喀喀喀580
gitreset--hardxxx,gitreset--softxxx与gitrevertxxx三者作用都是用来撤销某项操作,只是工作的领域和方式不同.gitreset--softxxximagegitreset--hardxxxhard(修改版本库,修改暂存区,修改工作区)imagegitrevertxxxrevert--gitrevert也是撤销命令,区别在于reset是指向原地或者向前移动指
- vertx写sip服务器
帐篷Li
开源视频联动物联网平台流媒体开发服务器运维
Vert.xSIP模块默认使用TCP协议进行通信。如果您需要支持UDP协议,您需要自定义SIP协议栈,并在其中实现UDP传输。以下是一个示例代码,演示如何在Vert.x中创建一个支持UDP的SIP服务器:importio.vertx.core.net.SocketAddress;importio.vertx.ext.SIP;importio.vertx.ext.SIP.Method;importi
- vertx 写sip协议
帐篷Li
开源视频联动物联网平台网络服务器运维
Vert.x是一个用于构建响应式系统的工具包,它支持多种协议,包括SIP。要在Vert.x中编写SIP协议,您需要使用Vert.xSIP模块。以下是在Vert.x中编写SIP协议的一般步骤:添加依赖项:在您的项目中添加Vert.xSIP模块的依赖项。创建SIP服务器:使用Vert.xSIP模块创建一个SIP服务器。您需要指定服务器的地址和端口号。创建SIP路由:在您的SIP服务器上创建SIP路由。
- git reset --hard xxx , git reset --soft xxx , git revert xxx 的区别
这是余传书简书
gitreset--hardxxx,gitreset--softxxx,gitrevertxxxgitrevert三者区别三者作用都是用来撤销某项操作,只是工作的领域和方式不同。gitresetgitreset常用于代码回滚,是直接删除指定的commit,但是文件和修改会移动到workspace工作区。gitreset--softxxx从暂存区撤回。soft命令会让版本回到某次commit后的状态
- 实体、DataTable、json、xml互转
ylattx
C#.netcore.netjsonxmlc#
需要用到Newtonsoft.Json//////将xml转换datatabe/////////publicstaticDataTableConvertXMLToDataTable(stringxmlData){DataSetdsData=newDataSet();dsData.ReadXml(newXmlTextReader(newStringReader(xmlData)));DataTabl
- vertx常用方法示例
wbkys
vertxrestful后端javavertx
一、多个回调如何避免回调地域方法:使用compose与Future示例1:按顺序执行里面的回调方法//回调方法1privateFuturegetStatus1(Stringid){returnFuture.future(f->{f.complete(true);});}//回调方法2privateFuturegetStatus2(booleanid){returnFuture.future(f->
- vertx学习
一户董
杂学习
写在前面新公司用到了vertx,所以这里学习下。源码。1:vertx是啥?是个框架吗?不是。只是一个工具类,只不过提供的功能比较全面,如http,websocket,tcp,json处理,定时任务,文件IO等。2:Vert.xCore核心对象io.vertx.core.Vertx。2.1:定时器//使用vertx执行定时执行任务@TestpublicvoidtimerWithVertx()thro
- vertx系列
一个带着思想做开发的人
分布式技术
vertx系列第一节1:谈下博主如何解除到vertx,目前大多公司用到的都是spring体系,但是博主在工作中,,感觉spring体系特别笨重,无论是国内,出的springalibaba等。不可否认,他们对java生态的分布式,做了很多。但是用起来还是特别重,性能比较低,有人说,用java就不要谈性能。java的性能不如go,很重要在于他的线程模型,后来,博主感觉,想自己去实现一套异步的分布式架构
- [USACO2012-Mar-Silver] Flowerpot 题解(单调队列 c++)
上烟雨心上尘
题解c++算法开发语言
[USACO12MAR]FlowerpotS题解(单调队列c++)题目链接:[USACO2012-Mar-Silver]Flowerpot题意:给你n个点,每个点有对应的x,y确认是否存在两个点,在y1,y2y_1,y_2y1,y2满足要求的情况下,输出最小的∣x2−x1∣\lvertx_2-x_1\rvert∣x2−x1∣思路:如果暴力的话,我们就考虑对于每一个点,寻找其对应的∣y1−y2∣>=
- vert.x学习心得笔记(一)
给我的名字加个鸡腿_
vert.x官方中文文档:https://vertxchina.github.io/vertx-translation-chinese/官方英文文档:一:背景介绍首先我们介绍vert.x,它是一种事件驱动,且异步的基于JVM的Java框架。由于近年来,移动网络、社交网络和电商的兴起,使各大服务提供商的客户端请求数量激增,传统服务器架构已不堪重负,致使基于事件和异步的解决方案备受追捧。而vert.x
- Vert.x 3学习笔记---02
avastxa
vertxjavavert.xnodejs
文档地址:http://vertx.io/docs/vertx-core/java/Verticlesverticles是一个很重要的概念。你可以将verticles当做是ActorModel(一种编程模型)中的actor。它是一段代码的集合—可以部署和被Vert.x运行。并且verticles能够被Vert.x支持的所有语言编写,并不仅限于java。一个应用可以包含不同语言编写的verticle
- Vert.x 3学习笔记---03
avastxa
vertxvert.xnodejsjava
TheEventBus概述本文介绍eventbus。TheeventbusisthenervoussystemofVert.x.每一个Vertx实例都只有一个eventbus实例,可以使用eventBus方法获取。eventbus容许你的应用程序的各个部分(相同或者不同语言编写的,相同或者不同的vertx或者vertx的其他部分)进行通讯。Theeventbusallowsdifferentpar
- Vert.x 3学习笔记---06
avastxa
vertxvert.xservertcpjavanodejs
WritingTCPserversandclients编写TCP服务端和客户端使用vertx可以很简单的编写出无阻塞的tcp服务端和客户端。下面逐一来介绍。CreatingaTCPserverNetServerserver=vertx.createNetServer();ConfiguringaTCPserver可以使用NetServerOptions来配置tcp服务端:NetServerOpti
- GIT reset hard/soft/revert的区别
leo_luo
三个命令都是撤销gitreset--hardxxx撤销你没有提交的改动和将你本地库全部的操作退回到XXX。gitreset--softxxx是将XXX从暂存区中撤回gitrevertxxx将在编辑器内修改的内容撤回,撤销一个提交的同时会创建一个新的提交。
- 【Java】Vert.x Jackson 序列化后日期数据正常展示
kida_yuan
Javajava开发语言
有段时间没有更新了,年尾嘛大家都懂的。其实最近有个想法,想将自己的vtx_fw框架给开源了。但开源之前还是有很多收尾的工作需要做的(总不能让各位笑话吧o(╥﹏╥)o),这不今天就发现了一个问题,立刻就归纳一下给各位分享。这个问题就是Vert.x框架中日期类型数据在Jackson序列化下的展示问题。有玩过Vert.x的小伙伴都知道在vertx-core包中会默认依赖jackson-core包。如果实
- 博客git区别
不喝雪碧我怕透心凉_c7de
gitreset--hardxxxgitreset--softxxxgitrevertxxx的区别resertgitrevertxxx如果修改了某些内容,但是还没有push到远程仓库,可以用gitreset去撤销更改,除了在当前分支上操作,还可以通过传入标记来修改缓存区或者工作目录,这些标记限定了gitreset的作用域,常常跟HEAD作为参数一起使用gitreset--softxxx回退到某个版
- Vert.x 学习笔记
wbkys
vertxjava开发语言后端
一、概述Vert.x(http://vertx.io)是一个基于JVM、轻量级、高性能的应用平台,非常适用于最新的移动端后台、互联网、企业应用架构.Vert.x是基于大名鼎鼎netty的异步的工具集。可以简单理解成运行在JVM上的Node.js。拥有高性能的一个java框架,可以维持单服务器至少120万长连接的平台.特性:1、同时支持多种编程语言——目前已经支持了Java、Scala、JavaSc
- 27Vert.X框架学习笔记
林伢仔
01Javajava网络分布式
vert.x框架学习笔记文章目录1Vert.x简明介绍1.1Vert.x能干什么1.2Vert.x快速体验1.3Vert.x的简单介绍1.4Vert.x的一些优势1.4.1异步非阻塞1.4.2Vertx支持多种编程语言1.4.3不依赖中间件1.4.4完善的生态1.4.5为服务而生1.5Vert.x的技术体系1.5.1核心模块1.5.2Web模块1.5.3数据访问模块1.5.4Reactive响应式
- Vert.x学习笔记(二) Vert.x Web Client
乐百川
javavertxvert.xweb框架
本文参考自Vert.xWebClient官方文档。套用官网的话来说,Vert.xWebClient是一个异步的HTTP和HTTP/2网络客户端。相对来说,这是一个比较小的框架,而且功能也很直接,做一个方便好用的HTTP客户端。它具有以下功能:Jsonbody编码/解码request参数统一的错误处理表单提交需要注意,它和Vertx核心包中的HttpClient有很多联系。它继承了HttpClien
- Vert.X使用笔记
小周今天code了吗
VertXjava开发语言
Vert.X使用笔记(一)一、开发环境二、官方文档三、vert.x概述1、vertx-core四、HelloWorld1、生成工程2、打开工程3、编写启动类4、启动项目5、另一种启动方法四、理解示例程序五、概念1、事件驱动2、非阻塞3、链式循环处理4、未来(future)5、verticle6、eventbus六、使用案例1、定时执行七、插曲ApacheIgnite一、开发环境-框架VERTX_V
- redis学习笔记——不仅仅是存取数据
Everyday都不同
returnSourceexpire/delincr/lpush数据库分区redis
最近项目中用到比较多redis,感觉之前对它一直局限于get/set数据的层面。其实作为一个强大的NoSql数据库产品,如果好好利用它,会带来很多意想不到的效果。(因为我搞java,所以就从jedis的角度来补充一点东西吧。PS:不一定全,只是个人理解,不喜勿喷)
1、关于JedisPool.returnSource(Jedis jeids)
这个方法是从red
- SQL性能优化-持续更新中。。。。。。
atongyeye
oraclesql
1 通过ROWID访问表--索引
你可以采用基于ROWID的访问方式情况,提高访问表的效率, , ROWID包含了表中记录的物理位置信息..ORACLE采用索引(INDEX)实现了数据和存放数据的物理位置(ROWID)之间的联系. 通常索引提供了快速访问ROWID的方法,因此那些基于索引列的查询就可以得到性能上的提高.
2 共享SQL语句--相同的sql放入缓存
3 选择最有效率的表
- [JAVA语言]JAVA虚拟机对底层硬件的操控还不完善
comsci
JAVA虚拟机
如果我们用汇编语言编写一个直接读写CPU寄存器的代码段,然后利用这个代码段去控制被操作系统屏蔽的硬件资源,这对于JVM虚拟机显然是不合法的,对操作系统来讲,这样也是不合法的,但是如果是一个工程项目的确需要这样做,合同已经签了,我们又不能够这样做,怎么办呢? 那么一个精通汇编语言的那种X客,是否在这个时候就会发生某种至关重要的作用呢?
&n
- lvs- real
男人50
LVS
#!/bin/bash
#
# Script to start LVS DR real server.
# description: LVS DR real server
#
#. /etc/rc.d/init.d/functions
VIP=10.10.6.252
host='/bin/hostname'
case "$1" in
sta
- 生成公钥和私钥
oloz
DSA安全加密
package com.msserver.core.util;
import java.security.KeyPair;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.security.SecureRandom;
public class SecurityUtil {
- UIView 中加入的cocos2d,背景透明
374016526
cocos2dglClearColor
要点是首先pixelFormat:kEAGLColorFormatRGBA8,必须有alpha层才能透明。然后view设置为透明glView.opaque = NO;[director setOpenGLView:glView];[self.viewController.view setBackgroundColor:[UIColor clearColor]];[self.viewControll
- mysql常用命令
香水浓
mysql
连接数据库
mysql -u troy -ptroy
备份表
mysqldump -u troy -ptroy mm_database mm_user_tbl > user.sql
恢复表(与恢复数据库命令相同)
mysql -u troy -ptroy mm_database < user.sql
备份数据库
mysqldump -u troy -ptroy
- 我的架构经验系列文章 - 后端架构 - 系统层面
agevs
JavaScriptjquerycsshtml5
系统层面:
高可用性
所谓高可用性也就是通过避免单独故障加上快速故障转移实现一旦某台物理服务器出现故障能实现故障快速恢复。一般来说,可以采用两种方式,如果可以做业务可以做负载均衡则通过负载均衡实现集群,然后针对每一台服务器进行监控,一旦发生故障则从集群中移除;如果业务只能有单点入口那么可以通过实现Standby机加上虚拟IP机制,实现Active机在出现故障之后虚拟IP转移到Standby的快速
- 利用ant进行远程tomcat部署
aijuans
tomcat
在javaEE项目中,需要将工程部署到远程服务器上,如果部署的频率比较高,手动部署的方式就比较麻烦,可以利用Ant工具实现快捷的部署。这篇博文详细介绍了ant配置的步骤(http://www.cnblogs.com/GloriousOnion/archive/2012/12/18/2822817.html),但是在tomcat7以上不适用,需要修改配置,具体如下:
1.配置tomcat的用户角色
- 获取复利总收入
baalwolf
获取
public static void main(String args[]){
int money=200;
int year=1;
double rate=0.1;
&
- eclipse.ini解释
BigBird2012
eclipse
大多数java开发者使用的都是eclipse,今天感兴趣去eclipse官网搜了一下eclipse.ini的配置,供大家参考,我会把关键的部分给大家用中文解释一下。还是推荐有问题不会直接搜谷歌,看官方文档,这样我们会知道问题的真面目是什么,对问题也有一个全面清晰的认识。
Overview
1、Eclipse.ini的作用
Eclipse startup is controlled by th
- AngularJS实现分页功能
bijian1013
JavaScriptAngularJS分页
对于大多数web应用来说显示项目列表是一种很常见的任务。通常情况下,我们的数据会比较多,无法很好地显示在单个页面中。在这种情况下,我们需要把数据以页的方式来展示,同时带有转到上一页和下一页的功能。既然在整个应用中这是一种很常见的需求,那么把这一功能抽象成一个通用的、可复用的分页(Paginator)服务是很有意义的。
&nbs
- [Maven学习笔记三]Maven archetype
bit1129
ArcheType
archetype的英文意思是原型,Maven archetype表示创建Maven模块的模版,比如创建web项目,创建Spring项目等等.
mvn archetype提供了一种命令行交互式创建Maven项目或者模块的方式,
mvn archetype
1.在LearnMaven-ch03目录下,执行命令mvn archetype:gener
- 【Java命令三】jps
bit1129
Java命令
jps很简单,用于显示当前运行的Java进程,也可以连接到远程服务器去查看
[hadoop@hadoop bin]$ jps -help
usage: jps [-help]
jps [-q] [-mlvV] [<hostid>]
Definitions:
<hostid>: <hostname>[:
- ZABBIX2.2 2.4 等各版本之间的兼容性
ronin47
zabbix更新很快,从2009年到现在已经更新多个版本,为了使用更多zabbix的新特性,随之而来的便是升级版本,zabbix版本兼容性是必须优先考虑的一点 客户端AGENT兼容
zabbix1.x到zabbix2.x的所有agent都兼容zabbix server2.4:如果你升级zabbix server,客户端是可以不做任何改变,除非你想使用agent的一些新特性。 Zabbix代理(p
- unity 3d还是cocos2dx哪个适合游戏?
brotherlamp
unity自学unity教程unity视频unity资料unity
unity 3d还是cocos2dx哪个适合游戏?
问:unity 3d还是cocos2dx哪个适合游戏?
答:首先目前来看unity视频教程因为是3d引擎,目前对2d支持并不完善,unity 3d 目前做2d普遍两种思路,一种是正交相机,3d画面2d视角,另一种是通过一些插件,动态创建mesh来绘制图形单元目前用的较多的是2d toolkit,ex2d,smooth moves,sm2,
- 百度笔试题:一个已经排序好的很大的数组,现在给它划分成m段,每段长度不定,段长最长为k,然后段内打乱顺序,请设计一个算法对其进行重新排序
bylijinnan
java算法面试百度招聘
import java.util.Arrays;
/**
* 最早是在陈利人老师的微博看到这道题:
* #面试题#An array with n elements which is K most sorted,就是每个element的初始位置和它最终的排序后的位置的距离不超过常数K
* 设计一个排序算法。It should be faster than O(n*lgn)。
- 获取checkbox复选框的值
chiangfai
checkbox
<title>CheckBox</title>
<script type = "text/javascript">
doGetVal: function doGetVal()
{
//var fruitName = document.getElementById("apple").value;//根据
- MySQLdb用户指南
chenchao051
mysqldb
原网页被墙,放这里备用。 MySQLdb User's Guide
Contents
Introduction
Installation
_mysql
MySQL C API translation
MySQL C API function mapping
Some _mysql examples
MySQLdb
- HIVE 窗口及分析函数
daizj
hive窗口函数分析函数
窗口函数应用场景:
(1)用于分区排序
(2)动态Group By
(3)Top N
(4)累计计算
(5)层次查询
一、分析函数
用于等级、百分点、n分片等。
函数 说明
RANK() &nbs
- PHP ZipArchive 实现压缩解压Zip文件
dcj3sjt126com
PHPzip
PHP ZipArchive 是PHP自带的扩展类,可以轻松实现ZIP文件的压缩和解压,使用前首先要确保PHP ZIP 扩展已经开启,具体开启方法就不说了,不同的平台开启PHP扩增的方法网上都有,如有疑问欢迎交流。这里整理一下常用的示例供参考。
一、解压缩zip文件 01 02 03 04 05 06 07 08 09 10 11
- 精彩英语贺词
dcj3sjt126com
英语
I'm always here
我会一直在这里支持你
&nb
- 基于Java注解的Spring的IoC功能
e200702084
javaspringbeanIOCOffice
- java模拟post请求
geeksun
java
一般API接收客户端(比如网页、APP或其他应用服务)的请求,但在测试时需要模拟来自外界的请求,经探索,使用HttpComponentshttpClient可模拟Post提交请求。 此处用HttpComponents的httpclient来完成使命。
import org.apache.http.HttpEntity ;
import org.apache.http.HttpRespon
- Swift语法之 ---- ?和!区别
hongtoushizi
?swift!
转载自: http://blog.sina.com.cn/s/blog_71715bf80102ux3v.html
Swift语言使用var定义变量,但和别的语言不同,Swift里不会自动给变量赋初始值,也就是说变量不会有默认值,所以要求使用变量之前必须要对其初始化。如果在使用变量之前不进行初始化就会报错:
var stringValue : String
//
- centos7安装jdk1.7
jisonami
jdkcentos
安装JDK1.7
步骤1、解压tar包在当前目录
[root@localhost usr]#tar -xzvf jdk-7u75-linux-x64.tar.gz
步骤2:配置环境变量
在etc/profile文件下添加
export JAVA_HOME=/usr/java/jdk1.7.0_75
export CLASSPATH=/usr/java/jdk1.7.0_75/lib
- 数据源架构模式之数据映射器
home198979
PHP架构数据映射器datamapper
前面分别介绍了数据源架构模式之表数据入口、数据源架构模式之行和数据入口数据源架构模式之活动记录,相较于这三种数据源架构模式,数据映射器显得更加“高大上”。
一、概念
数据映射器(Data Mapper):在保持对象和数据库(以及映射器本身)彼此独立的情况下,在二者之间移动数据的一个映射器层。概念永远都是抽象的,简单的说,数据映射器就是一个负责将数据映射到对象的类数据。
&nb
- 在Python中使用MYSQL
pda158
mysqlpython
缘由 近期在折腾一个小东西须要抓取网上的页面。然后进行解析。将结果放到
数据库中。 了解到
Python在这方面有优势,便选用之。 由于我有台
server上面安装有
mysql,自然使用之。在进行数据库的这个操作过程中遇到了不少问题,这里
记录一下,大家共勉。
python中mysql的调用
百度之后能够通过MySQLdb进行数据库操作。
- 单例模式
hxl1988_0311
java单例设计模式单件
package com.sosop.designpattern.singleton;
/*
* 单件模式:保证一个类必须只有一个实例,并提供全局的访问点
*
* 所以单例模式必须有私有的构造器,没有私有构造器根本不用谈单件
*
* 必须考虑到并发情况下创建了多个实例对象
* */
/**
* 虽然有锁,但是只在第一次创建对象的时候加锁,并发时不会存在效率
- 27种迹象显示你应该辞掉程序员的工作
vipshichg
工作
1、你仍然在等待老板在2010年答应的要提拔你的暗示。 2、你的上级近10年没有开发过任何代码。 3、老板假装懂你说的这些技术,但实际上他完全不知道你在说什么。 4、你干完的项目6个月后才部署到现场服务器上。 5、时不时的,老板在检查你刚刚完成的工作时,要求按新想法重新开发。 6、而最终这个软件只有12个用户。 7、时间全浪费在办公室政治中,而不是用在开发好的软件上。 8、部署前5分钟才开始测试。