17.1.Java语言线并发和并行、程与进程,如何创建一个线程类

版权声明:原创,转载请说明,谢谢! https://blog.csdn.net/ajia5216/article/details/82632625

线程

并行与并发

并行:指两个或多个事件在同一时刻发生(同时发生)。

并发:指两个或多个事件在同一个时间段内发生。

并发指的是在一段时间内宏观上有多个程序同时运行,这在单 CPU 系统中,每

一时刻只能有一道程序执行,即微观上这些程序是分时的交替运行,只不过是给人的感觉是同时运行,那是因为分时交替

运行的时间是非常短的。

进程与线程

进程:是指一个内存中运行的应用程序,每个进程都有一个独立的内存空间。(一个应用程序可以同时运行多个进程);

进程也是程序的一次执行过程,是系统运行程序的基本单位;系统运行一个程序即是一个进程从创建、运行到消亡的过

程。

线程:进程内部的一个独立执行单元;一个进程可以同时并发的运行多个线程,可以理解为一个进程便相当于一个单

CPU 操作系统,而线程便是这个系统中运行的多个任务。

Java 程序的进程里面至少包含两个线程,主进程也就是 main()方法线程,另外一个是垃圾回收机制线程。

进程与线程的区别

进程:有独立的内存空间,进程中的数据存放空间(堆空间和栈空间)是独立的,至少有一个线程。

线程:堆空间是共享的,栈空间是独立的,线程消耗的资源比进程小的多。

注意:

1. 因为一个进程中的多个线程是并发运行的,那么从微观角度看也是有先后顺序的,哪个线程执行完全取决于CPU 的调

度,程序员是干涉不了的。而这也就造成的多线程的随机性。

2. Java 程序的进程里面至少包含两个线程,主进程也就是 main()方法线程,另外一个是垃圾回收机制线程。每当使用

java 命令执行一个类时,实际上都会启动一个 JVM,每一个 JVM 实际上就是在操作系统中启动了一个线程,java 本身具

备了垃圾的收集机制,所以在 Java 运行时至少会启动两个线程。

3. 由于创建一个线程的开销比创建一个进程的开销小的多,那么我们在开发多任务运行的时候,通常考虑创建多线程,

而不是创建多进程。

创建线程类

Java使用 java.lang.Thread 类代表线程,所有的线程对象都必须是Thread类或其子类的实例。

通过继承Thread类来创建和启动线程

首先定义继承Thread类的子类,并重写run方法, 该run()方法的方法体就代表了线程需要完成的任务,因此把run()方法称为

线程执行体。

然后创建线程类的对象并调用start()方法启动线程

示例:

猜你喜欢

转载自blog.csdn.net/ajia5216/article/details/82632625