Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

aldebran97/thread_pool

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

4 Commits

Repository files navigation

线程池Java实现

使用方法

1.视为实现了Runnable接口的对象是一个任务

2.首先初始化线程池ThreadPool, 构造方法参数为最大线程数

3.每次调用commitTask(Runnable)提交任务,这是一个阻塞方法,当空闲线程数不够的时候发生阻塞,直到有线程执行完任务释放信号量

4.提交完所有任务后,推荐使用shutdown()关闭线程池,可以确保已经任务都完成,不推荐用shutdownForce(),可能有已提交任务只做了一部分或者没做,只在任务结果不重要,快速关闭并释放资源采用

代码示例

 ThreadPool threadPool = new ThreadPool(8); // 创建最大线程数为8的线程池
 threadPool.commitTask(runnableObject); // 提交1个任务,多次提交不限量,但要保证任务能在有限时间内完成,不然会耗尽线程池!!!
 /**
 * threadPool.idleThreads()获取空闲线程数,任务量大,任务多,空闲数会少
 * threadPool.maxThreads()获取最大线程数
 * threadPool.currentThreads()获得已有线程数,初始为0,随着需要逐渐增大到最大线程数
 */
 threadPool.shutdown(); // 温和关闭线程池,保证所有已提交任务完成
 // 不推荐threadPool.shutdownForce(),可能导致已提交任务未做或者没做完,除非不关心结果,只想快速结束线程并释放资源

About

线程池Java实现

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

AltStyle によって変換されたページ (->オリジナル) /