java线程

牧云@^-^@ 提交于 2020-02-24 22:55:43
Android 多线程编程其实并不比 Java 多线程编程特珠,基本都是使用相同的语法。比如 说,定义一个线程只需要新建一个类继承自 Thread,然后重写父类的 run()方法,并在里面 编写耗时逻辑即可,如下所示:

 

    class MyThread extends Thread {
        @Override
        public void run() {

// 处理具体的逻辑 }

}

那么该如何启动这个线程呢?其实也很简单,只需要 new MyThread 的实例,然后调 用它的 start()方法,这样 run()方法中的代码就会在子线程当中运行了,如下所示:

    new MyThread().start();

当然,使用继承的方式耦合性有点高,更多的时候我们都会选择使用实现 Runnable 接 口的方式来定义一个线程,如下所示:

    class MyThread implements Runnable {
        @Override
        public void run() {

// 处理具体的逻辑 }

}

如果使用了这种写法,启动线程的方法也需要进行相应的改变,如下所示:

    MyThread myThread = new MyThread();
    new Thread(myThread).start();

可以看到,Thread 的构造函数接收一个 Runnable 参数,而我们 new 出的 MyThread 正是 一个实现了 Runnable 接口的对象,所以可以直接将它传入到 Thread 的构造函数里。接着调

 

Thread start()方法,run()方法中的代码就会在子线程当中运行了。 当然,如果你不想专门再定义一个类去实现 Runnable 接口,也可以使用匿名类的方式,

这种写法更为常见,如下所示:
    new Thread(new Runnable() {
        @Override
        public void run() {

// 处理具体的逻辑 }

}).start();

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!