如何创建一个线程?

我们都知道多线程可以并发执行任务,在某些情况下多线程或许不能提高执行效率,因为多线程虽然看上去是并发执行的,实际上还是CPU分配时间片,是有先后顺序的,只是时间片切换速度很快,以至于我们看上去是同时执行的而已!但是对于那种需要等待请求响应耗时比较长的任务用多线程的话相较于单线程效率要高的多,如API请求,网络爬虫等等。
那么如何创建一个线程呢?创建线程有两种方法,第一种就是继承Thread类,第二种实现Runnable接口。如下展示:
1.继承Thread类:
	package 多线程学习;

/**

  • Created by Administrator on 2018/9/24.
    */
    public class MyThread extends Thread{
    @Override
    public void run(){
    try{
    System.out.println(“创建了一个线程叫:”+Thread.currentThread().getName());
    }catch (Exception e){
    e.printStackTrace();
    }
    }
    }

创建Test类:
package 多线程学习;

/**

  • Created by Administrator on 2018/9/25.
    */
    public class Test {
    public static void main(String[] args) {
    MyThread myThread = new MyThread();
    myThread.setName(“thread0”);
    myThread.start();
    }
    }

运行这个main方法:打印结果如下:

创建了一个线程叫:thread0

Process finished with exit code 0

2.实现Runnable接口:

package 多线程学习;

/**

  • Created by Administrator on 2018/9/24.
    */
    public class MyRunnable implements Runnable{
    @Override
    public void run(){
    try{
    System.out.println(“创建了一个线程叫:”+Thread.currentThread().getName());
    }catch (Exception e){
    e.printStackTrace();
    }
    }
    }

创建Test类:
package 多线程学习;

/**

  • Created by Administrator on 2018/9/25.
    */
    public class Test {
    public static void main(String[] args) {
    Runnable runnable = new MyRunnable();
    Thread thread = new Thread(runnable);
    thread.setName(“thread0”);
    thread.start();
    }
    }

运行这个main方法:打印结果如下:

创建了一个线程叫:thread0

Process finished with exit code 0

总结:我们可以看到这两种创建线程的方法都可以,但是由于java语言的特性是单根继承的,而接口是可以实现多个的,所以我们平时最好还是用第二种实现Runnable接口的方法来创建一个线程。但其实我们看Thread类的源码就知道它也是实现Runnable的接口的:
public
class Thread implements Runnable {
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值