java多线程的创建(继承Thread,实现Runnable接口)

一.什么是线程,进程及创建多线程的方式

什么是进程,进程是正在运行的应用程序,进程是线程的集合。
     * 什么是线程,线程是一条执行路径,一个独立的执行单元。
     * 什么是多线程  为了提高程序效率
     * 创建有哪些方式?
     * 1.使用继承Thread类方式
     * 2.使用实现runable接口方式
     * 3.使用匿名类方式
     * 4.callable
      5.使用线程池创建线程

实例:

1.使用继承Thread类创建线程
/**
 * @author shkstart
 * @date 2019/6/5- 9:25
 */

class CreateThreadDemo1 extends Thread{

    @Override
    public void run(){
        super.run();
        for (int i = 0;i < 1000;i++){
            System.out.println("run:"+i);
        }
    }
}
public class ThreadDemo1 {
    /***
     * 什么是进程,进程是正在运行的应用程序,进程是线程的集合。
     * 什么是线程,线程是一条执行路径,一个独立的执行单元。
     * 什么是多线程  为了提高程序效率
     * 创建有哪些方式?
     * 1.使用继承Thread类方式
     * 2.使用实现runable接口方式
     * 3.使用匿名类方式
     * 4.callable
     * 5.使用线程池创建线程
     */

    public static void main(String[] args) {
        CreateThreadDemo1 createThreadDemo1 = new CreateThreadDemo1();
        //启动线程,不是调用run方法,而是调用start方法
        //使用多线程后,代码不会从上到下执行
        createThreadDemo1.start();
        for (int i = 0;i < 1000;i++){
            System.out.println("main:"+i);
        }

    }
}

运行:
在这里插入图片描述
可以看到run方法和main方法交替执行

二.同步与异步的区别

1.什么是同步
同步就是代码从上至下执行,俗称单线程
在这里插入图片描述
故此程序执行完需要20秒的时间。
2.什么是异步
俗称多线程
在这里插入图片描述
此程序执行完只需10秒,故多线程提高了程序效率。
在执行是有一个CPU执行权,每次运行时结果不一样,是因为在执行时cpu调度不一样。

2.使用实现Runnable方式创建多线程

实例:

/**
 * @author shkstart
 * @date 2019/6/5- 10:00
 */
class CreateThreadDemo2 implements Runnable{

    @Override
    public void run() {
        for (int i = 0;i < 30;i++){
            System.out.println("子线程run"+i);
        }
    }
}
public class ThreadDemo2 {
    public static void main(String[] args) {
        CreateThreadDemo2 t1 = new CreateThreadDemo2();
        Thread thread = new Thread(t1);
        thread.start();
        for (int i = 0;i < 30;i++){
            System.out.println("main"+i);
        }
    }


}

运行结果:

在这里插入图片描述

面试题:使用继承方式创建多线程好还是使用接口方式创建多线程好?

答:使用接口方式好。因为开发一般是面向接口编程,接口可以多继承。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值