多线程,所解决的问题就是在同一时刻有多条路径去执行相同的代码块,当然,这是理论上的。提起多线程,就不得不说一下两个概念:进程和线程。

线程:线程是一组指令的集合,或者是程序的特殊段,它可以在程序里独立执行

进程:每个正在系统上运行的程序都是一个进程.每个进程包含一到多个线程。

综上所述:进程是所有线程的集合,每一个线程是进程中的一条执行路径。

1:为什么使用多线程?

主要能体现到多线程提高程序效率。举例: 迅雷多线程下载、数据库连接池、分批发送短信等。

误区:多线程不可以提高代码运行的速度,多线程只是提高程序的效率。比如:多线程下载中,只是多条线程去下载文件不同文件段,最后都现在完成时进行文件段的合并操作,而不是多线程提高了网速,多线程不会使文件下载的速度变快,像百度网盘、迅雷之所以速度变快,个人猜测是他们这些软件和网络运行上有合作,是针对性的提高了下载带宽而已。

2:多线程实现的三种方式

第一种:继承Thread类,重写run方法

java架构师基础 多线程(一)

输出结果:

java架构师基础 多线程(一)再次运 行  :      java架构师基础 多线程(一)

注意:两次执行的结果不同,其实几乎每次执行的结果都不相同,这是因为cpu对线程分配造成的。

第二种方法:实现Runnable接口,重写run方法

java架构师基础 多线程(一)

第三种方式:使用匿名内部类方式

java架构师基础 多线程(一)

根据自己的需求,确认使用哪种方式,方式无优先,解决问题才是关键,黑猫白猫都是猫,抓住老鼠的才是好猫。

本章先介绍到这里,下一章,我们将具体介绍一下守护线程、线程的5中状态和join的使用。

 

相关文章: