在电脑中一个进程有多个线程,举例:微信就是一个进程,打开程序有很过功能,每一个独立的功能就是一个线程。
串行:程序从上往下一次执行。执行完一个线程执行,在执行下一个
并行:多个程序同时执行,CPU根据分配时间。CPU随机分配时间,时间片分配给那个线程那个线程就先执行,由于CPU执行效率高,看不出是一个一个执行的,看起来是同时执行。
java中如何实现多线程
java中多线程的实现方式有两种,一种是继承java.lang.Thread类,另一种是实现java.lang.Runnable接口。
启用多线程的三种方式
实现Runnable接口优势:
1)适合多个相同的程序代码的线程去处理同一个资源
2)可以避免java中的单继承的限制
3)增加程序的健壮性,代码可以被多个线程共享,代码和数据独立。
继承Thread类优势:
1)可以将线程类抽象出来,当需要使用抽象工厂模式设计时。
2)多线程同步
在函数体使用优势
1)无需继承thread或者实现Runnable,缩小作用域。
线程为什么调用start()而不是直接调用run()
run()方法只是一个类中的普通方法,直接执行和普通的方法没有设么两样
start()方法则不同,它首先做了创建线程等一系列工作,然后调用行的run()方法