- Android 用线程池实现一个简单的任务队列(Kotlin)
深海呐
Android#Android进阶#Kotlinandroidkotlin线程池延时任务队列线程池延时任务
关于线程池,Kotlin和java的使用方式一样在Android中,很多人喜欢用Handler的postDelayed()去实现延时任务.要使用postDelayed(),去实现延时任务队列,就不可避免要使用递归.但是这样做,代码的简洁性,和书写的简易,就远不如使用线程池.使用线程池的简单程度:privatevalmThreadPool=Executors.newSingleThreadSched
- Java Executors类的9种创建线程池的方法及应用场景分析
工业甲酰苯胺
java开发语言
在Java中,Executors类提供了多种静态工厂方法来创建不同类型的线程池。在学习线程池的过程中,一定避不开Executors类,掌握这个类的使用、原理、使用场景,对于实际项目开发时,运用自如,以下是一些常用的方法,一一细说:newCachedThreadPool():创建一个可缓存的线程池,如果线程池中的线程超过60秒没有被使用,它们将被终止并从缓存中移除。newFixedThreadPoo
- Java线程池
sparkle123
Callable和Runable都是启动一个线程,不过Callable可以有返回值importjava.util.concurrent.{Callable,Executor,Executors,Future}objectThreadDemo{defmain(args:Array[String]):Unit={valpool=Executors.newFixedThreadPool(5)//for(
- Spring使用ThreadPoolTaskExecutor自定义线程池及实现异步调用
精神阿祝
多线程java线程池springboot
Spring使用ThreadPoolTaskExecutor自定义线程池及实现异步调用多线程一直是工作或面试过程中的高频知识点,今天给大家分享一下使用ThreadPoolTaskExecutor来自定义线程池和实现异步调用多线程。一、ThreadPoolTaskExecutor本文采用Executors的工厂方法进行配置。1、将线程池用到的参数定义到配置文件中在项目的resources目录下创建e
- java线程池分段处理list集合
一亩尘埃
java线程池实例javalistjvm
java线程池分段处理list集合packagecom.chenva.main.util;importjava.util.*;importjava.util.concurrent.CountDownLatch;importjava.util.concurrent.ExecutorService;importjava.util.concurrent.Executors;publicclassThea
- JAVA 8 中的线程池
杀手代号404
javajava8java并发编程ExecutorFork/Join线程池
1Executors:Executor与ExecutorServicejava8提供了Executors类,它位于java.util.concurrent包下Executors提供了一系列预配置线程池,我们可以直接调用,避免了重复造轮子而Executor和ExecutorService是两个接口,可以对线程池进行操作1.1ExecutorExecutor只有一个方法:execute(),只能用来执
- java:标识位限制登录数功能:加入ip和username来判断
hongyuxiongji
java
importjava.util.concurrent.ConcurrentHashMap;importjava.util.concurrent.Executors;importjava.util.concurrent.ScheduledExecutorService;importjava.util.concurrent.TimeUnit;publicclassFTPLimitLogin{priva
- 线程池相关面试题
HW--
java开发语言
一、JDK自带的线程池有那些?1.Executors.newCachedThreadPool()创建一个可缓存线程的线程池,若线程池长度超出需要,可回收线程,若没有可回收,则新建线程2.Executors.newFixedThreadPool()创建定长线程池,可控制线程最大并发数,超出的线程在队列中等待3.Executors.newScheduledThreadPool()创建定长线程池,支持定
- [转载]Java8并发教程 - Thread和Executors
小小少年Boy
原文:Java8并发教程-Thread和Executors本教程分为三个部分,这是第一部分.在本教程中,我们大量使用了Java8中的lambda表达式.如果你对此不是很熟悉,请自行查阅资料来了解.当然,你也可以看这篇.1ThreadandRunnable现代操作系统,都支持通过进程和线程来实现并发.进程是程序的运行时的实例.程序是静态的,而进程是动态的.进程与进程之间,相互独立.例如,如果你运行一
- Java中三种定时任务总结(schedule,quartz,xxl-job)
林隐w
javajava定时任务调度
目录1、Spring框架的定时任务2、QuartzQuartz的用法3、xxl-job3.1docker安装xxl-job3.2xxl-job编程测试补充:Java中自带的定时任务调度1.java.util.Timer和java.util.TimerTask2.java.util.concurrent.Executors和java.util.concurrent.ScheduledExecutor
- 线程池,定时器以及阻塞队列(生产者/消费者模型)
从零开始的-CodeNinja之路
java缓存数据库
博客主页:从零开始的-CodeNinja之路⏩收录专栏:线程池,定时器以及阻塞队列(生产者/消费者模型)欢迎大家点赞评论收藏⭐文章实现线程池,定时器以及阻塞队列,生产者/消费者模型线程池线程池是什么Executors创建线程池的四种方式线程池底层ThreadPoolExecutor的六大参数拒绝策略实现线程池定时器定时器的定义标准库中的定时器定时器的实现阻塞队列阻塞队列的概念生产者消费者模型阻塞队
- Java进阶之光!java向数据库添加中文乱码
编码老司机
程序员面试后端java
Java并发编程3、什么是多线程中的上下文切换?4、死锁与活锁的区别,死锁与饥饿的区别?5、Java中用到的线程调度算法是什么?6、什么是线程组,为什么在Java中不推荐使用?》7、为什么使用Executor框架?8、在Java中Executor和Executors的区别?9.如何在Windows和Linux上查找哪个线程使用的CPU时间最长?10、什么是原子操作?在JavaConcurrency
- 送你一个并发编程的奇淫巧技,很舒服!
程序员蜗牛g
springboot多线程linuxjavaspringbootspringtomcat
本文就来聊聊CompletionService这个东西。先来一起看个例子吧:public class JDKThreadPoolExecutorTest { public static void main(String[] args) throws Exception { ExecutorService executorService = Executors.newCached
- Java之线程池
流年划破容颜_cc55
程序启动的过程中,如果产生新的线程,涉及到的成本是比较高的。因为要涉及到与操作系统的交互。而使用线程池可以很好的提高性能,尤其是当程序中要创建大量生存期很短的线程时,更应该考虑使用线程池。线程池里的每一个线程代码结束后,并不会死亡,而是再次回到线程池成为空闲状态,等待下一个对象的使用。在JDK5之前,我们必须手动实现自己的线程池,从JDK5之后,Java内置支持线程池。Executors工厂类产生
- Java线程工具类Executors四种线程池
程序员kk
1.newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。publicstaticExecutorServicenewCachedThreadPool(){returnnewThreadPoolExecutor(0,//核心线程数为零Integer.MAX_VALUE,//线程非核心数为MAX_VALUE=0x7ffff
- spark原理总体介绍
tracy_668
拿到系统后,部署系统是第一件事,那么系统部署成功以后,各个节点都启动了哪些服务?部署图image.png从部署图中可以看到整个集群分为Master节点和Worker节点,相当于Hadoop的Master和Slave节点。Master节点上常驻Master守护进程,负责管理全部的Worker节点。Worker节点上常驻Worker守护进程,负责与Master节点通信并管理executors。Driv
- 线程池,及7大参数,4大拒绝策略详解
DecemberZero2
开发语言java
线程池,及7大参数,4大拒绝策略详解1.前言1.1什么是线程池?线程池是一种利用池化技术思想来实现的线程管理技术,主要是为了复用线程、便利地管理线程和任务、并将线程的创建和任务的执行解耦开来。我们可以创建线程池来复用已经创建的线程来降低频繁创建和销毁线程所带来的资源消耗。在JAVA中主要是使用ThreadPoolExecutor类来创建线程池,并且JDK中也提供了Executors工厂类来创建线程
- 想要通过面试?先搞懂线程池!阿里巴巴面试题解析
知其然亦知其所以然
博客搬家java开发语言面试
大家好,我是小米!今天我们来聊一聊阿里巴巴常见的面试题之一:线程池。作为一个经常需要处理并发任务的开发者,对于线程池的了解是至关重要的。那么,让我们一起来深入了解线程池的构造、工作过程、拒绝策略以及Executors类的实现方式吧!线程池构造函数线程池构造函数及其参数是我们在使用Java多线程编程中不可或缺的一部分。深入了解它们可以帮助我们更好地配置和管理线程池,从而提高程序的性能和效率。首先,让
- 关于:程序中threadName:pool-4637-thread-4是什么意思?问题
Mercury_@22
线程池线程池问题
描述:在一次使用线程池过程中,服务器日志出现pool-4637-thread-4。心生疑问,网上也有人提出疑问。我这边出现的原因是:ExecutorServicefixedThreadPool=Executors.newFixedThreadPool(10);这个定义在了for循环中,导致了会创建多个线程池。这个问题对服务器是危险的,所以按理说线程池应该在所有循环代码的最外层。以上如果描述有错误,
- 深入理解 Java 线程池
hymua
java开发语言
深入理解Java线程池1.概述线程池是多线程编程中一种重要的并发机制,它能够管理和复用线程,提高程序的性能和稳定性。Java提供了java.util.concurrent包,其中的Executor框架和线程池是多线程编程的核心。深入理解Java线程池包括线程池的创建、工作原理、调优策略等方面。2.线程池的创建Java提供了多种创建线程池的方式:2.1使用Executors工厂方法ExecutorS
- SpringBoot中使用Spring自带线程池ThreadPoolTaskExecutor与Java8CompletableFuture实现异步任务示例
霸道流氓气质
SpringBootspringbootspring后端
场景关于线程池的使用:Java中ExecutorService线程池的使用(Runnable和Callable多线程实现):Java中ExecutorService线程池的使用(Runnable和Callable多线程实现)_executorserviceexecutorservice=executors.newfix-CSDN博客Java中创建线程的方式以及线程池创建的方式、推荐使用Thread
- 线程池创建及如何避免OOM
qq_41920323
C++学习c++Excutor造成OOM原因线程池
常见的线程池创建方式。创建线程池的方式主要分为两种,自动创建和手动创建:a、通过Executors执行器自动创建线程池。b、通过ThreadPoolExecutor手动创建线程池。Executors:Executors创建线程池很便捷,常用的创建方式有6种:1、newSingleThreadExecutor()创建一个单线程化的线程池;2、newFixedThreadPool()创建固定线程数量的
- vulhub中 Apache Airflow Celery 消息中间件命令执行漏洞复现(CVE-2020-11981)
余生有个小酒馆
vulhub漏洞复现apache
ApacheAirflow是一款开源的,分布式任务调度框架。在其1.10.10版本及以前,如果攻击者控制了Celery的消息中间件(如Redis/RabbitMQ),将可以通过控制消息,在Worker进程中执行任意命令。1.利用这个漏洞需要控制消息中间件,Vulhub环境中Redis存在未授权访问。通过未授权访问,攻击者可以下发自带的任务`airflow.executors.celery_exec
- 异步处理(CompletableFutrue)应用笔记
KEEPMA
笔记java开发语言
线程的实现方式线程的实现方式importorg.springframework.stereotype.Component;importjava.util.concurrent.Callable;importjava.util.concurrent.ExecutionException;importjava.util.concurrent.Executors;importjava.util.conc
- java并发编程-线程池(三)Executors工厂类
wangpeng123
如果觉得写的还可以请关注微信公众号:程序猿的日常分享,定期更新分享。Executors工厂线程池主要有三类,一个是用于创建立即执行的线程池ThreadPoolExecutor,一个是用于创建执行定时任务类线程池ScheduledThreadPoolExecutor,还有就是在jdk1.7引入的基于fork/join框架的分治线程池ForkJoinPool。基于这3种线程池实现类,Executors
- 面试高频知识点:2线程 2.1.3 项目中为什么不适用JDK默认实现的线程池
忠于衷于钟于终于
面试高频知识点java面试jvm线程
1.线程池大小的固定性JDK默认的线程池实现Executors.newFixedThreadPool(intn)创建的线程池具有固定数量的线程,这在某些场景下可能不够灵活。在实际项目中,任务的性质和数量可能随着时间的推移而变化,使用固定大小的线程池可能导致资源浪费或者无法满足实际需求。2.缺乏对任务队列的灵活控制JDK默认的线程池采用无界的工作队列,这意味着如果任务提交速度高于线程处理速度,工作队
- 2018-05-11线程池
培根好吃
publicclassThreadDemo{publicstaticvoidmain(String[]args){//调用工厂类的静态方法,创建一个线程池对象//返回线程池对象,是返回的接口ExecutorServicees=Executors.newFixedThreadPool(2);//调用接口实现类对象es中的方法submit提交线程任务//将Runnable接口实现类对象,传递es.su
- 记一次日志trace引起的事故
一把青龙湾月刀
javaservletandroid
事故描述,运行一段时间后,系统运行一段时间后变慢,gc和cpu都正常。直接贴样例代码publicstaticvoidmain(String[]args)throwsIOException{finalExecutorServiceexecutorService=Executors.newFixedThreadPool(100);for(inti=0;i{finalUUIDuuid=UUID.rand
- 线程池——Executor、Executors、ExecutorService、ThreadPoolExecutor、ThreadPoolTaskExecutor之间的区别
小甄笔记
线程java开发语言
java.util.concurrent.Executor负责线程的使用和调度的根接口|–ExecutorService子接口:线程池的主要接口|–ThreadPoolExecutor线程池的实现类|–ScheduledExceutorService子接口:负责线程的调度|–ScheduledThreadPoolExecutor:继承ThreadPoolExecutor,实现了ScheduledE
- [并发编程基础] Java线程的创建方式
程序员三木
Java探索者之路java开发语言
文章目录线程的创建方式继承`Thread`实现`Runnable`接口实现`Callable`接口使用`Lambda`使用线程池线程创建相关的`jdk`源码`Thread`类`Runnable`函数接口`Callable`函数接口`executors`线程的创建方式继承Thread创建一个继承Thread类的子类。重写Thread类的run()方法。在run()方法中编写线程要执行的任务。创建Th
- 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分钟才开始测试。