并发:指两个或多个事件在同一时间段内发生。
并行:指两个或多个事件在同一时刻发生。
继承Thread
run方法就是线程要执行的任务方法
执行路径的触发方式,不是调用run方法,而是通过thread对象的start()来启动任务。
实现Runnable与继承Thread想比有如下优势:
1.通过创建任务,然后给线程分配的方式来实现的多线程,更适合多个线程同时执行相同任务的情况。
2.可以避免单继承所带来的的局限性。
3.任务与线程本身是分离的,提高了程序的健壮性。
4.后续学习的线程池技术,接受Runnable类型的任务,不接受Thread类型的线程
线程安全
同步代码块synchronized() 使用同一把锁。
同步方法:加上修饰符synchronized()。
显示锁lock()
二线程死锁就是A在等B,B在等A。
多线程通信问题就是生产者与消费者的问题。
线程的六种状态
new 尚未启动的状态
runnable 在java虚拟机中是运行的状态
blocked 在排队的状态
waiting在休眠的状态
timed—waiting指定时间休眠的状态
trminated结束的状态
四种线程池
1.缓存线程池
2.定长线程池
3.单线程线程池
4.周期性任务定长线程池



