继续写,写的有点乱了,望大家不要介意,我会慢慢该过来的。
这是推送程序的activitiy diagram
程序中涉及到一些线程处理方面的问题。
1 多线程的问题。
由于程序中管理程序本身就是一个线程,他负责管理业务线程的初始化和启动,而为了提高效率我们又在业务线程实现了可配置的多线程处理方式。这样在我处理的最多的情况时,可能会执行近百个线程。而且,随着业务的增加还会有更多的线程需要启动。无限制的增加下去,会造成系统负担过重。所以我采用了对线程技术来处理这种问题。
其实很简单就是采用了,jdk1.5中的线程池。代码三行搞定
java 代码
- private ThreadPoolExecutor threadPool;
- threadPool = new ThreadPoolExecutor(100, 100, 0L,
- TimeUnit.MILLISECONDS, new LinkedBlockingQueue<Runnable>());
- threadPool.prestartAllCoreThreads();