多线程,所解决的问题就是在同一时刻有多条路径去执行相同的代码块,当然,这是理论上的。提起多线程,就不得不说一下两个概念:进程和线程。
线程:线程是一组指令的集合,或者是程序的特殊段,它可以在程序里独立执行
进程:每个正在系统上运行的程序都是一个进程.每个进程包含一到多个线程。
综上所述:进程是所有线程的集合,每一个线程是进程中的一条执行路径。
1:为什么使用多线程?
主要能体现到多线程提高程序效率。举例: 迅雷多线程下载、数据库连接池、分批发送短信等。
误区:多线程不可以提高代码运行的速度,多线程只是提高程序的效率。比如:多线程下载中,只是多条线程去下载文件不同文件段,最后都现在完成时进行文件段的合并操作,而不是多线程提高了网速,多线程不会使文件下载的速度变快,像百度网盘、迅雷之所以速度变快,个人猜测是他们这些软件和网络运行上有合作,是针对性的提高了下载带宽而已。
2:多线程实现的三种方式
第一种:继承Thread类,重写run方法
输出结果:
再次运 行 :
注意:两次执行的结果不同,其实几乎每次执行的结果都不相同,这是因为cpu对线程分配造成的。
第二种方法:实现Runnable接口,重写run方法
第三种方式:使用匿名内部类方式
根据自己的需求,确认使用哪种方式,方式无优先,解决问题才是关键,黑猫白猫都是猫,抓住老鼠的才是好猫。