美文网首页
java android 开启子线程的三种方式

java android 开启子线程的三种方式

作者: 鹅鹅鹅曲项向天歌呀 | 来源:发表于2019-04-17 22:29 被阅读0次

    1、创建线程池管理(推荐使用)
    2、集成Thread
    3、实现Runnable接口

    1、创建线程池管理(推荐使用!!!)

    理由:
    1、为了减少创建和销毁线程的次数,让每个线程可以多次使用,可根据系统情况调整执行的线程数量,防止消耗过多内存,所以我们可以使用线程池.
    2、新线程的创建,会带来时间的开销,通过线程池可以节约开辟新线程的时间,提高响应速度,同时也便于对线程进行管理。
    3、线程池统一管理线程资源,避免频繁的删除/创建线程带来的资源消耗;
    4、线程池可以统计资源调用情况;

    线程池的创建以及使用:

       /**
         * 线程池
         */
        private static final Executor threadExecutor = new ThreadPoolExecutor( 2, 4,  30,
                TimeUnit.SECONDS,new LinkedBlockingQueue<Runnable>(10)
        );
    
       /**
         * 使用
         */
            threadExecutor.execute(new Runnable() {
                            @Override
                            public void run() {
                                final long id = Thread.currentThread().getId();
                                stringBuilder.append("Thread ID="+id+"\n");
                                runOnUiThread(new Runnable() {
                                    @Override
                                    public void run() {
                                        mMainTextView.setText(stringBuilder);
                                    }
                                });
                            }
                        });
    
    

    2、集成Thread类

    这是一个匿名内部类的写法!!!

                    new Thread(new Runnable() {
                            @Override
                            public void run() {
                                final long id = Thread.currentThread().getId();
                                stringBuilder.append("Thread ID="+id+"\n");
                                runOnUiThread(new Runnable() {
                                    @Override
                                    public void run() {
                                        mMainTextView.setText(stringBuilder.toString());
                                    }
                                });
                            }
                        }).start();
    

    3、实现Runnable接口

    public class MyThread2 implements Runnable {//实现Runnable接口
    
      public void run(){
    
      //重写run方法
    
      }
    
    }
    
    public class Main {
    
      public static void main(String[] args){
    
        //创建并启动线程
    
        MyThread2 myThread=new MyThread2();
    
        Thread thread=new Thread(myThread);
    
        thread().start();
    
        //或者    new Thread(new MyThread2()).start();
    
      }
    
    }
    

    相关文章

      网友评论

          本文标题:java android 开启子线程的三种方式

          本文链接:https://www.haomeiwen.com/subject/csgdwqtx.html