多线程:
进程:正在进行中的程序,其实是一个应用程序在内存中运行的那篇空间
线程:进程中的一个执行单元。负责进程中的程序的运行,一个进程中至少有一个线程。
一个进程中是可以有多个线程的,这个应用程序也可以称之为多线程程序
程序启动了多线程,有什么应用呢?
可以实现多部分程序同时执行。专业术语也成为并发执行。
多线程的使用可以合理使用CPU的资源,如果线程过多就会导致性能降低
CPU在处理程序时是通过快速切换完成的,在我们看来想随机一样
1如何创建线程
通过api中的英文thread的搜索,查询thread类、
通过阅读thread类中的描述知:
创建线程有两种方式:
(1)声明为thread的子类、该子类应重写thread类中了run方法
(2)创建子类的对象,就是创建线程对象
(3)调用start昂发,开启线成并让线成执行,同时会告诉虚拟机去调用run方法
2为什么要这麽做
继承tread类,因为thread类描述线程事物,具备线程该有的功能
3为什么不直接创建thread类对象?
这麽做没有错,但是该start调用的是thread类中的run方法,而这个run方法没有做什么事情,更重要的事这个run方法中并没有定义我们需要让线成执行的代码。
创建现成的目的是为了建立单独的执行路径,让多部分代码实现同时执行
也就是线程创建并执行需要给定的代码(线程的任务)。
对于之前所讲的主线程,他的任务定义在主函数中。
自定义的线程需要执行的任务都定义在run方法中。
Thread类中的run方法内部的任务并不是我们所需要的,只要重写这个run方法
多线程执行时,在栈内存中,其实每一个执行线程都有一片自己所属的栈内存空间。
进行方法的压栈和弹栈。
当线程结束时,线程自动在栈内存中释放了。
但是当所有的执行线程都结束了,进程就结束了。