一、什么是线程,进程及创建多线程的方式
@什么是进程,进程是正在运行的应用程序,进程是线程的集合。
* 什么是线程,线程是一条执行路径,一个独立的执行单元。
* 什么是多线程 为了提高程序效率
* 创建有哪些方式?
* 1.使用继承Thread类方式
* 2.使用实现runable接口方式
* 3.使用匿名类方式
* 4.callable
* 5.使用线程池创建线程
二、实例
-
使用继承 Thread 类创建线程:
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 { 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方法交替执行;
二、同步与异步的区别
-
什么是同步
同步就是代码从上至下执行,俗称单线程
故此程序执行完需要20秒的时间。 -
什么是异步
俗称多线程
此程序执行完只需10秒,故多线程提高了程序效率。
在执行是有一个CPU执行权,每次运行时结果不一样,是因为在执行时cpu调度不一样。
三、使用实现Runnable方式创建多线程
3. 实例
```
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);
}
}
}
```
- 运行结果:
总结:使用继承方式创建多线程好还是使用接口方式创建多线程好?
答:使用接口方式好。开发一般是面向接口编程,接口可以多继承。