Skip to content

Commit 92712f6

Browse files
author
oleg-vyalyh
authored
[BKNDLSS-23755,BKNDLSS-23637,BKNDLSS-23406] thread pool service (#482)
* Refactoring of ThreadPoolService and ThreadFactoryService. * Fixes in build.gradle * Removed Subscription.
1 parent feb8aae commit 92712f6

11 files changed

+41
-352
lines changed

src/com/backendless/Backendless.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -224,7 +224,7 @@ public static void initApp( Object context, final String applicationId, final St
224224

225225
if( isCodeRunner() )
226226
{
227-
ThreadPoolService.getPoolExecutor();
227+
ThreadPoolService.getThreadPoolExecutor();
228228
return;
229229
}
230230

src/com/backendless/Cache.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ public <T> void get( final String key, final AsyncCallback<T> callback )
9292
{
9393
final Class<?> asyncCallbackType = ReflectionUtil.getCallbackGenericType( callback );
9494

95-
ThreadPoolService.getPoolExecutor().execute( new Runnable()
95+
ThreadPoolService.getThreadPoolExecutor().execute(new Runnable()
9696
{
9797
@Override
9898
public void run()

src/com/backendless/Invoker.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ public static <T> void invokeAsync( String className, String methodName, Object[
6161
public static <T> void invokeAsync( final String className, final String methodName, final Object[] args,
6262
final AsyncCallback<T> callback, final IChainedResponder responder )
6363
{
64-
ThreadPoolService.getPoolExecutor().execute( new Runnable()
64+
ThreadPoolService.getThreadPoolExecutor().execute(new Runnable()
6565
{
6666
@Override
6767
public void run()

src/com/backendless/Subscription.java

Lines changed: 0 additions & 127 deletions
This file was deleted.

src/com/backendless/ThreadFactoryService.java

Lines changed: 0 additions & 53 deletions
This file was deleted.

src/com/backendless/ThreadPoolService.java

Lines changed: 30 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,8 @@
1818

1919
package com.backendless;
2020

21-
import java.util.concurrent.ExecutorService;
22-
import java.util.concurrent.Executors;
2321
import java.util.concurrent.LinkedBlockingQueue;
22+
import java.util.concurrent.ScheduledThreadPoolExecutor;
2423
import java.util.concurrent.ThreadFactory;
2524
import java.util.concurrent.ThreadPoolExecutor;
2625
import java.util.concurrent.TimeUnit;
@@ -29,30 +28,48 @@
2928

3029
public class ThreadPoolService
3130
{
32-
private final static ExecutorService threadPoolExecutor;
31+
private final static SimpleThreadFactory THREAD_FACTORY;
32+
private final static ThreadPoolExecutor THREAD_POOL_EXECUTOR;
33+
private final static ScheduledThreadPoolExecutor SCHEDULED_THREAD_POOL_EXECUTOR;
3334
private final static int MAX_THREAD_POOL_SIZE = 10;
3435

3536
static
3637
{
3738
if (Backendless.isCodeRunner())
38-
threadPoolExecutor = new ThreadPoolExecutor(0, MAX_THREAD_POOL_SIZE, 2, TimeUnit.SECONDS,
39+
{
40+
THREAD_FACTORY = new SimpleThreadFactory("BackendlessSDK_CR");
41+
THREAD_POOL_EXECUTOR = new ThreadPoolExecutor(0, MAX_THREAD_POOL_SIZE, 2, TimeUnit.SECONDS,
3942
new LinkedBlockingQueue<Runnable>(),
40-
new SimpleThreadFactory("BackendlessSDK_CR"));
43+
THREAD_FACTORY);
44+
45+
SCHEDULED_THREAD_POOL_EXECUTOR = null;
46+
}
4147
else
42-
threadPoolExecutor = new ThreadPoolExecutor(2, MAX_THREAD_POOL_SIZE, 60, TimeUnit.SECONDS,
43-
new LinkedBlockingQueue<Runnable>(),
44-
new SimpleThreadFactory("BackendlessSDK"));
48+
{
49+
THREAD_FACTORY = new SimpleThreadFactory("BackendlessSDK");
50+
THREAD_POOL_EXECUTOR = new ThreadPoolExecutor(2, MAX_THREAD_POOL_SIZE, 60, TimeUnit.SECONDS,
51+
new LinkedBlockingQueue<Runnable>(),
52+
THREAD_FACTORY);
4553

54+
SCHEDULED_THREAD_POOL_EXECUTOR = new ScheduledThreadPoolExecutor(2, THREAD_FACTORY);
55+
}
4656
}
4757

48-
public static ExecutorService getPoolExecutor()
58+
public static ThreadPoolExecutor getThreadPoolExecutor()
4959
{
50-
return threadPoolExecutor;
60+
return THREAD_POOL_EXECUTOR;
5161
}
5262

63+
public static ScheduledThreadPoolExecutor getScheduledThreadPoolExecutor()
64+
{
65+
return SCHEDULED_THREAD_POOL_EXECUTOR;
66+
}
67+
68+
5369
private static class SimpleThreadFactory implements ThreadFactory
5470
{
55-
private final ThreadFactory threadFactory = Executors.defaultThreadFactory();
71+
private final static ThreadGroup THREAD_GROUP = new ThreadGroup( "BackendlessSDK_ThreadGroup" );
72+
5673
private final String threadNamePrefix;
5774
private final boolean isDaemon = true;
5875
private final AtomicInteger threadNumber = new AtomicInteger();
@@ -63,10 +80,9 @@ public SimpleThreadFactory( String poolName )
6380
}
6481

6582
@Override
66-
public Thread newThread( Runnable r )
83+
public Thread newThread( Runnable runnable )
6784
{
68-
Thread t = threadFactory.newThread( r );
69-
t.setName( threadNamePrefix + threadNumber.getAndIncrement() );
85+
Thread t = new Thread( THREAD_GROUP, runnable, threadNamePrefix + threadNumber.getAndIncrement() );
7086
t.setDaemon( isDaemon );
7187
return t;
7288
}

src/com/backendless/UploadBitmapAsyncTask.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ void executeThis( Bitmap bitmap, Bitmap.CompressFormat compressFormat, int quali
4848
private void doInBackground( final Bitmap bitmap, final Bitmap.CompressFormat compressFormat, final int quality,
4949
final String name, final String path )
5050
{
51-
ThreadPoolService.getPoolExecutor().execute( new Runnable()
51+
ThreadPoolService.getThreadPoolExecutor().execute(new Runnable()
5252
{
5353
@Override
5454
public void run()

src/com/backendless/UploadFileAsyncTask.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ private void doInBackground( final File file, final String path )
5454
{
5555
final AsyncUploadMessage asyncUploadMessage = new AsyncUploadMessage( uploadCallback );
5656

57-
ThreadPoolService.getPoolExecutor().execute( new Runnable()
57+
ThreadPoolService.getThreadPoolExecutor().execute(new Runnable()
5858
{
5959
@Override
6060
public void run()

src/com/backendless/messaging/AndroidHandler.java

Lines changed: 0 additions & 85 deletions
This file was deleted.

0 commit comments

Comments
 (0)