进程:应用程序在内存中分配的空间(正在运行的程序)。
线程:是进程中负责程序执行的执行单元,也称为执行路径。
一个进程中至少有一个线程,在负责该进程的运行。
如果一个进程中出现了多个线程,就称为该程序为多线程程序。
多线程技术:解决多部分代码同时执行的需求,合理使用CPU资源。
多线程的运行是根据CPU的切换完成的,怎么切换是CPU说的算。所多线程运行有一个随机性(CPU快速切换造成的)。
jvm中的多线程:
至少有两个线程,一个是负责自定义代码运行的,一个是负责垃圾回收的。
发现结果并不相同,是因为随机性造成的,而每一个线程都有运行的代码内容,这个称之为线程的任务。之所以创建一个线程就是为了运行指定的任务代码。
而线程的任务都封装在特点的区域中,比如主线程运行的任务都定义在main方法中,垃圾回收线程在finalize方法中。
(到底是主线程还是垃圾回收线程是CPU说的算,启动了垃圾回收线程并没有立即执行。)
如何开辟一个新的执行路径?
通过查阅API文档java.lang.thread类。该类的描述中有创建新执行线程的两种方式。
1、继承Thread类。
(1)继承Thread类。(2)覆盖run方法。(3)创建该子类对象,也就是创建了线程对象。(4)调用Thread类中的start方法,开启线程并执行run方法中的内容。
注意:start()开启线程后,都会执行run(),说明run()中存储的是线程的执行代码,所以,自定义线程的任务代码是放在run()中。