package test;
public class Test1 {
public static void main(String[] args) {
try {
Thread.sleep(Integer.MAX_VALUE);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
Test1
类重复运行
3
次后的进程列表如图
所 示。可以看到,在任务管理器中创建了
3个 javaw.exe
进程,说明每执行一次
main()方法就创建 一个进程,其本质上就是
JVM
虚拟机进程
线程
线程可以理解为在进程中 独立运行的子任务,例如,QQ.exe运行时,很多 的子任务也在同时运,如好友视频线程、下载 文件线程、传输数据线程、发送表情线程等,这 些不同的任务或者说功能都可以同时运行,其中 每一项任务完全可以理解成是
“
线程”在工作,传 文件、听音乐、发送图片表情等这些功能都有对 应的线程在后台默默地运行。
进程和线程关系
进程负责向操作系统申请资源。在一个进程 中,多个线程可以共享进程中相同的内存或文件
资源
多线程优点
多个线程按照cup时间片并行运算,不会出现不互相依赖的线程相互等待和阻塞的情况
使用多线程技术的场景
1)阻塞。一旦系统中出现了阻塞现象,则可 以根据实际情况来使用多线程技术提高运行效
率。
2
)依赖。业务分为两个执行过程,分别是A 和
B
。当
A
业务发生阻塞情况时,
B
业务的执行不
依赖
A业务的执行结果,这时可以使用多线程技术 来提高运行效率;如果
B
业务的执行依赖A业务的 执行结果,则可以不使用多线程技术,按顺序进 行业务的执行。
注意
1、在实际的开发应用中,不要为了使用多线程 而使用多线程,要根据实际场景决定。
2、 多线程是异步的,所以千万不要把代 码的顺序当作线程执行的顺序,线程被调用的时机是随机的


