码迷,mamicode.com
首页 > 其他好文 > 详细

ThreadUtils

时间:2017-02-23 20:40:04      阅读:370      评论:0      收藏:0      [点我收藏+]

标签:port   else   任务   tar   ice   androi   over   new t   mit   

import android.os.Handler;
import android.os.Looper;

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;


public class ThreadUtils {

    private static Handler sHandler = new Handler(Looper.getMainLooper());

    private static ExecutorService sExecutorService = Executors.newSingleThreadExecutor();

    //Runnable:任务,必须依附于某一个线程
    //Thread:线程,线程用来执行任务
    //Process:进程
    //保证r这个任务一定是在主线程中执行
    public static void runOnUiThread(Runnable r){

        if(Looper.myLooper() == Looper.getMainLooper()) {
            //主线程
            //new Thread(r).start(); 一旦new了Thread就一定是子线程
            r.run();
        } else {
            //new Thread(r).start()
            sHandler.post(r);
        }

        /*new Thread(new Runnable(){
            @Override
            public void run() {

            }
        }).start();*/
    }

    //保证r一定在子线程中得到执行
    public static void runOnSubThread(Runnable r) {
        //new Thread(r).start();
        //线程池的概念,线程池里面装的是线程,使用线程池可以达到线程的复用,提高性能
        sExecutorService.submit(r);//将r丢到线程池中,线程池中的线程就会来执行r这个任务
    }
}

 



import android.os.Handler;
import android.os.Looper;

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;


public class ThreadUtils {

   
private static Handler sHandler = new Handler(Looper.getMainLooper());

   
private static ExecutorService sExecutorService = Executors.newSingleThreadExecutor();

   
//Runnable:任务,必须依附于某一个线程
   
//Thread:线程,线程用来执行任务
   
//Process:进程
   
//保证r这个任务一定是在主线程中执行
   
public static void runOnUiThread(Runnable r){

       
if(Looper.myLooper() == Looper.getMainLooper()) {
           
//主线程
           
//new Thread(r).start(); 一旦newThread就一定是子线程
           
r.run();
       
} else {
           
//new Thread(r).start()
           
sHandler.post(r);
       
}

       
/*new Thread(new Runnable(){
            @Override
            public void run() {

            }
        }).start();*/
   
}

   
//保证r一定在子线程中得到执行
   
public static void runOnSubThread(Runnable r) {
       
//new Thread(r).start();
        //
线程池的概念,线程池里面装的是线程,使用线程池可以达到线程的复用,提高性能
       
sExecutorService.submit(r);//r丢到线程池中,线程池中的线程就会来执行r这个任务
   
}
}

 

ThreadUtils

标签:port   else   任务   tar   ice   androi   over   new t   mit   

原文地址:http://www.cnblogs.com/loaderman/p/6435199.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!