打开迅雷(进程),下载某个电影(线程).
一.进程(process):
系统中运行的程序,进程之间数据独立.
多进程:程序中可以运行多个程序.
二.线程(Thread):
运行在进程中的运行单元,依赖于进程,数据是共享的.
多线程:解决了java程序的执行顺序问题,线程可以使程序执行书序发生改变.
ps:在任何一门语言中,程序的执行顺序都是顺序执行的,也就是说执行完 A 部分的代码片段之后才能执行 B 代码片段.
线程的实现方式:
1.继承Thread父类
1>继承 Thread 类;
2> 重写 run 方法;
3>调用线程的 start 方法(启动线程,调用 run 方法)
2.实现Runnable接口
ps:没有严格意义上的并发, 单核的CPU 在同一个时刻只能给一个程序分配资源,也就是赋予一个程序运行权,那么我们看到一次能运行好几个程序其实是 CPU 来回切换执行权,所以让别人以为是并发运行,只是切换的速度很快(取决于 CPU 的主频)所以没有真正意义上的并发运行.
3.Runnable 和 Thread 的区别
1>Runnable 就是一个可执行任务的标识而已,仅此而已;而 Thread 才是线程所有 API 的体现;
2>继承了 Thread 父类就没有办法去继承其他类,而实现了 Runnable 接口也可以继承其他类并且实现其他接口.
3>将任务执行单元和线程的执行控制区分开来.