您的位置:首页 > 其它

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);
}
}

}

运行结果:

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

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

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐