以下之说均为一家之言,能够帮到您是我的荣幸,有不足之处请各位大神多多指教。
了解线程之前要先知道它一亲戚------进程。很多初学者容易将其搞混,下面演义之说就是比较之言,有比较才有伤害,疼了,就有记性了。
所谓进程就是一能独立运行的程序,而所谓线程就是一独立运行的代码片。
上面太官方了,不和您胃口,那咱说点民间的:
进程就是千军万马过独木桥的千军和万马,线程就是千军和万马的心、肝、脾、胃、肾;
现在再来说说多线程,百度百科的定义是软件或硬件实现多个线程并发的技术。
什么是并发,就是一起发,同时执行,关键字在于同时,而且必须大于一,一个线程那叫单线程,大于一才是多线程。
首先声明一点,所谓并发,并不是真正的一起发,而是由于非常快的原因,给人的感觉像是同时,但它不是严格意义的同时。
官方来讲就是我们电脑的CPU为每个进程或者线程都分配了时间片,但是时间片非常快就执行了,感觉好像就是同步。
言归正传,接着往下看
明白进程和线程以后,接着说多线程的创建
它的创建有两种方式,一种是继承类,一种是实现接口,别问哪个类哪个接口,自己查去
两者的区别的根本原因还是Java基础:Java实现类的单继承,接口的多实现,哪个好哪个坏,心里自己掂量一下吧
除此之外呢,继承类的那种实现方式它不能资源共享,通俗来说,各顾各的,大路朝天,各走半边。这原本没什么,但是如果同住一个屋檐下,同睡一张床
各自为政的夫妻恐怕距离离婚就不远了吧,举个例子:
同样是买火车票,利用继承类的方法来实现,就会出现这样的情况,A线程卖的是第一百张票,B线程也卖第一百张票,到最后,A线程卖最后一张票,
B线程也卖最后一张票。这很明显,这个售票系统在胡说八道。
而利用接口来实现,就不会出现这样的笑话了,接口实现可以资源共享,各位看官记好了啊。