关于ExecutorService的Future的误解
一.概述
在多线程编程中我们经常使用ExecutorService的Future来实现等待多个线程返回的需求。此时需要调用ExecutorService的相关方法来实现,比如
在多线程编程中我们经常使用ExecutorService的Future来实现等待多个线程返回的需求。此时需要调用ExecutorService的相关方法来实现,比如
我们经常使用IBatis这个ORM框架来操作数据库,在使用IBatis的时候我们需要编写sqlMap以及sqlMapConfig的配置文件。
目前maven被广泛用于java项目的开发中,统一管理项目依赖,以及项目的打包部署等,我们经常需要编写maven的pom文件,包括顶级pom以及子pom。maven既可以用来构建单工程项目,也可以用来构建多工程项目,子工程和子工程之间有相互依赖。
在写Java代码中我们经常使用final这个关键字,被final修饰的变量,编译器不允许我们修改它的值,如果是基本类型,编译器不允许我们在第一次赋值后再修改基本类型的值,如果是引用类型,编译器不允许我们在第一次赋值后再修改引用的指向,这都是编译器层面的限制,因为如果你试图去修改它,就会得到一个编译错误。
曾经有人问我maven中dependencies和dependencyManagement的区别,我当时主要从版本控制以及依赖引入这两方面来回答
我们通常使用zookeeper集群来协同管理另外一个集群,比如HBase集群,一个HBase集群必然对应一个zookeeper集群。在部署zookeeper集群的时候,我们为什么选择奇数台机器呢?
今天在自己应用中引入了一个新的中间件,发布到线上后,发现一个接口一直获取不到数据,此时找不到日志,因为代码中的日志输出不按常理出牌,误引入了某一中间件自定义的Logger导致日志很难找到,此时要是在测试环境,debug一下就搞定,但是线上不能这么搞,如何去查看一下本次调用接口返回的数据到底是什么呢?
在编写并发程序的时候,我们经常遇到这样的事情,就是当N个线程都走到某一步后再继续做其他事情,都走到某一步包含这N个线程都运行结束这种场景。我们可以使用线程同步的思想来解决这类问题,在C语言中中我们经常使用信号量来解决此类问题。当然要是你自己使用线程同步来解决个问题,你需要做很多事情,不过jdk提供了一些封装好的类帮助我们解决此类问题,这里我们来看如何使用juc包中提供的CountDownLatch和CyclicBarrier来解决这类问题。
假设我们有N个缓存空间,我们现在要把对象存储到到这个N个缓存空间中,我们可以定义这样的哈希函数
hash(object) mod N
很多公司目前都在使用svn来管理代码,当然要是你的开发环境不是Linux或许你不知到这几个命令你一样可以开发,但是要是你的开发环境是Linux,那你就需要了解这几个开发命令。关于代码的签出,提交我们就暂时不用考虑了,这些命令太简单。