`
programmer_Q
  • 浏览: 5680 次
社区版块
存档分类
最新评论
文章列表
ExecutorService中submit和execute的区别   在Java5之后,并发线程这块发生了根本的变化,最重要的莫过于新的启动、调度、管理线程的一大堆API了。在Java5以后,通过Executor来启动线程比用Thread的start()更好。在新特征中,可以很容易控制线程的启动、执行和关闭过程,还可以很容易使用线程池的特性。   一、创建任务   任务就是一个实现了Runnable接口的类。 创建的时候实run方法即可。   二、执行任务  
package ThreadDemo; import java.util.Date; /*生产者(Producer)将产品交给店员(check),而消费者(Customer)从店员出取走产品。 店员一次只能维持固有数量的产品(比如20)。如果生产者试图生产更多的产品,店员会叫生产者停一下。 如果店中有空位,店员会叫生产者生产。如果店中没有产品了,会告诉消费者等一下。如果店中有产品了 再通知消费者来取走。 * *分析1 *1:是否涉及到多线程的问题?是!生产者,消费者 *2:是否会涉及到共享数据?是 *3:此共享数据是谁?产品的数量 *4:是 ...
package ThreadDemo; import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; ...
package Reflect; /*如何编写工具类: * 方法一: * 1.把工具方法做成非static方法, * 2.把工具类做成单例的。 * 那么要调用工具方法,必须先得到工具类。再调用方法 * 方法二: * 1.把工具方法做成static方法 * 2.把工具类所有构造器全部私有化,或者把工具加上abstract的。 * 这么做的目的就是为了全部是类去调用工具方法。 * * */ //根据反射的对象工厂,专门用来生成对象。为了使其他方法类也可以使用该方法,特意将该方法抽取到该类中。 //单例模式:Enum public enum Bea ...
Global site tag (gtag.js) - Google Analytics