java多线程的创建(继承Thread,实现Runnable接口)
2019-06-05 10:11
274 查看
一.什么是线程,进程及创建多线程的方式
什么是进程,进程是正在运行的应用程序,进程是线程的集合。 * 什么是线程,线程是一条执行路径,一个独立的执行单元。 * 什么是多线程 为了提高程序效率 * 创建有哪些方式? * 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); } } }
运行结果:
面试题:使用继承方式创建多线程好还是使用接口方式创建多线程好?
答:使用接口方式好。因为开发一般是面向接口编程,接口可以多继承。
相关文章推荐
- java多线程学习1-继承Thread类和实现Runnable接口来创建线程
- java创建多线程的两种方法(继承Thread类/实现Runnable接口)
- Java【多线程知识总结(5)】比较继承Thread类创建线程和实现Runnable接口创建线程这两种方式
- Java【多线程知识总结(5)】比较继承Thread类创建线程和实现Runnable接口创建线程这两种方式
- 在java编程时,线程创建实现Runnable接口与继承Thread类的不同
- Java 多线程实现接口Runnable和继承Thread区别 (2
- Java并发03:多线程实现三方式:继承Thread类、实现Runnable接口、实现Callable接口
- Java 实现多线程的3种方法:继承Thread类;实现Runnable接口;实现Callable接口。具体代码实现实例
- JAVA多线程实现的三种方式(继承Thread类、实现Runnable接口、使用ExecutorService、Callable、Future实现有返回结果的多线程)
- 多线程——Java中继承Thread类与实现Runnable接口的区别
- Java基础知识强化之多线程笔记05:Java中继承thread类 与 实现Runnable接口的区别
- java实现多线程的两种方式继承Thread类和实现Runnable接口
- java实现多线程的两种方式继承Thread类和实现Runnable接口的方法
- Java多线程实现接口Runnable和继承Thread区别(建议使用Runnable)
- JAVA多线程实现方式主要有三种:继承Thread类、实现Runnable接口、使用ExecutorService、Callable、Future实现有返回结果的多线程。其中前两种方式线程执行完后都没
- Java 多线程实现接口Runnable和继承Thread区别
- JAVA 两种方法实现多线程(继承Thread和实现Runnable接口)
- 在java中可有两种方式实现多线程,一种是继承Thread类,一种是实现Runnable接口
- Java 多线程实现接口Runnable和继承Thread区别
- Java 多线程实现接口Runnable和继承Thread区别