Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
P
PubTools-tools
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
liuxingyu
PubTools-tools
Commits
a84189b9
Commit
a84189b9
authored
Aug 16, 2023
by
lihao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
code review
parent
4456aee3
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
14 additions
and
14 deletions
+14
-14
TaskPoolFactory.java
.../java/com/mushiny/task/executor/core/TaskPoolFactory.java
+13
-10
TaskTests.java
...c/test/java/com/mushiny/task/executor/core/TaskTests.java
+1
-4
No files found.
task-executor-kit/task-executor-core/src/main/java/com/mushiny/task/executor/core/TaskPoolFactory.java
View file @
a84189b9
...
...
@@ -8,22 +8,25 @@ import java.util.concurrent.TimeUnit;
* @author lihao
*/
public
class
TaskPoolFactory
{
public
TaskPoolFactory
()
{
// ignore
}
public
<
T
,
U
,
R
>
TaskExecutor
<
T
,
U
,
R
>
createExecutor
()
{
private
ThreadPoolExecutor
threadPoolExecutor
;
public
TaskPoolFactory
()
{
int
core
=
Runtime
.
getRuntime
().
availableProcessors
();
int
poolSize
=
Math
.
min
(
core
/
2
,
4
);
return
createExecutor
(
new
ThreadPoolExecutor
(
poolSize
,
poolSize
+
1
,
0L
,
TimeUnit
.
MILLISECONDS
,
new
LinkedBlockingQueue
<>())
,
15L
,
TimeUnit
.
SECONDS
)
;
this
.
threadPoolExecutor
=
new
ThreadPoolExecutor
(
poolSize
,
poolSize
+
1
,
0L
,
TimeUnit
.
MILLISECONDS
,
new
LinkedBlockingQueue
<>());
}
public
<
T
,
U
,
R
>
TaskExecutor
<
T
,
U
,
R
>
createExecutor
(
ThreadPoolExecutor
pool
)
{
return
createExecutor
(
pool
,
15L
,
TimeUnit
.
SECONDS
);
public
TaskPoolFactory
(
ThreadPoolExecutor
threadPoolExecutor
)
{
this
.
threadPoolExecutor
=
threadPoolExecutor
;
}
public
<
T
,
U
,
R
>
TaskExecutor
<
T
,
U
,
R
>
createExecutor
()
{
return
createExecutor
(
15L
,
TimeUnit
.
SECONDS
);
}
public
<
T
,
U
,
R
>
TaskExecutor
<
T
,
U
,
R
>
createExecutor
(
ThreadPoolExecutor
pool
,
Long
timeOut
,
TimeUnit
timeUnit
)
{
return
new
TaskExecutor
<>(
pool
,
timeOut
,
timeUnit
);
public
<
T
,
U
,
R
>
TaskExecutor
<
T
,
U
,
R
>
createExecutor
(
Long
timeOut
,
TimeUnit
timeUnit
)
{
return
new
TaskExecutor
<>(
this
.
threadPoolExecutor
,
timeOut
,
timeUnit
);
}
}
task-executor-kit/task-executor-core/src/test/java/com/mushiny/task/executor/core/TaskTests.java
View file @
a84189b9
...
...
@@ -7,8 +7,6 @@ import org.junit.Test;
import
java.util.ArrayList
;
import
java.util.Collections
;
import
java.util.List
;
import
java.util.concurrent.LinkedBlockingQueue
;
import
java.util.concurrent.ThreadPoolExecutor
;
import
java.util.concurrent.TimeUnit
;
public
class
TaskTests
{
...
...
@@ -48,8 +46,7 @@ public class TaskTests {
@Test
public
void
multiTaskLoopWithArgsTest
()
{
TaskPoolFactory
taskPoolFactory
=
new
TaskPoolFactory
();
TaskExecutor
<
User
,
User
,
String
>
executor
=
taskPoolFactory
.
createExecutor
(
new
ThreadPoolExecutor
(
8
,
9
,
0L
,
TimeUnit
.
MILLISECONDS
,
new
LinkedBlockingQueue
<>()),
60L
,
TimeUnit
.
SECONDS
);
TaskExecutor
<
User
,
User
,
String
>
executor
=
taskPoolFactory
.
createExecutor
(
60L
,
TimeUnit
.
SECONDS
);
executor
.
init
((
data
,
context
)
->
{
data
.
setName
(
data
.
getName
()
+
"handle"
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment