137b2b389139ed638831e49708c947863eef631efRonghua Wu/* 237b2b389139ed638831e49708c947863eef631efRonghua Wu * Copyright (C) 2013 The Android Open Source Project 337b2b389139ed638831e49708c947863eef631efRonghua Wu * 437b2b389139ed638831e49708c947863eef631efRonghua Wu * Licensed under the Apache License, Version 2.0 (the "License"); 537b2b389139ed638831e49708c947863eef631efRonghua Wu * you may not use this file except in compliance with the License. 637b2b389139ed638831e49708c947863eef631efRonghua Wu * You may obtain a copy of the License at 737b2b389139ed638831e49708c947863eef631efRonghua Wu * 837b2b389139ed638831e49708c947863eef631efRonghua Wu * http://www.apache.org/licenses/LICENSE-2.0 937b2b389139ed638831e49708c947863eef631efRonghua Wu * 1037b2b389139ed638831e49708c947863eef631efRonghua Wu * Unless required by applicable law or agreed to in writing, software 1137b2b389139ed638831e49708c947863eef631efRonghua Wu * distributed under the License is distributed on an "AS IS" BASIS, 1237b2b389139ed638831e49708c947863eef631efRonghua Wu * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1337b2b389139ed638831e49708c947863eef631efRonghua Wu * See the License for the specific language governing permissions and 1437b2b389139ed638831e49708c947863eef631efRonghua Wu * limitations under the License. 1537b2b389139ed638831e49708c947863eef631efRonghua Wu */ 1637b2b389139ed638831e49708c947863eef631efRonghua Wu 1737b2b389139ed638831e49708c947863eef631efRonghua Wupackage com.android.bitmap; 1837b2b389139ed638831e49708c947863eef631efRonghua Wu 1937b2b389139ed638831e49708c947863eef631efRonghua Wuimport java.util.concurrent.Executors; 2037b2b389139ed638831e49708c947863eef631efRonghua Wuimport java.util.concurrent.ThreadFactory; 2137b2b389139ed638831e49708c947863eef631efRonghua Wuimport java.util.concurrent.atomic.AtomicInteger; 2237b2b389139ed638831e49708c947863eef631efRonghua Wu 2337b2b389139ed638831e49708c947863eef631efRonghua Wupublic class NamedThreadFactory implements ThreadFactory { 2437b2b389139ed638831e49708c947863eef631efRonghua Wu private final ThreadFactory mDefaultThreadFactory; 2537b2b389139ed638831e49708c947863eef631efRonghua Wu private final String mBaseName; 2637b2b389139ed638831e49708c947863eef631efRonghua Wu private final AtomicInteger mCount = new AtomicInteger(0); 2737b2b389139ed638831e49708c947863eef631efRonghua Wu 2837b2b389139ed638831e49708c947863eef631efRonghua Wu public NamedThreadFactory(final String baseName) { 2937b2b389139ed638831e49708c947863eef631efRonghua Wu mDefaultThreadFactory = Executors.defaultThreadFactory(); 3037b2b389139ed638831e49708c947863eef631efRonghua Wu mBaseName = baseName; 3137b2b389139ed638831e49708c947863eef631efRonghua Wu } 3237b2b389139ed638831e49708c947863eef631efRonghua Wu 3337b2b389139ed638831e49708c947863eef631efRonghua Wu @Override 3437b2b389139ed638831e49708c947863eef631efRonghua Wu public Thread newThread(final Runnable runnable) { 3537b2b389139ed638831e49708c947863eef631efRonghua Wu final Thread thread = mDefaultThreadFactory.newThread(runnable); 3637b2b389139ed638831e49708c947863eef631efRonghua Wu thread.setName(mBaseName + "-" + mCount.getAndIncrement()); 3737b2b389139ed638831e49708c947863eef631efRonghua Wu return thread; 3837b2b389139ed638831e49708c947863eef631efRonghua Wu } 3937b2b389139ed638831e49708c947863eef631efRonghua Wu} 4037b2b389139ed638831e49708c947863eef631efRonghua Wu