多线程:
线程的概念:
进程包含线程,线程是操作系统能够进行运算调度的最小单位
并发与并行:
并发:一个cup执行多个线程 如:一边开车,一边打电话
并行:多个cup执行多个线程 如:小明开车,小李打电话
线程的创建方式:
1.继承Thread类
2.实现Runnable接口
3.实现Callable接口 可以获得多线程的运行结果
4.线程池
继承Thread类
实现Runnable接口
线程的常用方法:
setDaemon() 守护线程:当主线程结束,守护线程也会结束
yield()方法,暂时出让CPU执行权,但是有可能下次还会抢夺到CPU的执行权
join()插入线程之前:
线程的生命周期:
线程安全问题:多线程卖票
三个线程都进入了,但是由于睡眠了,所以没有执行下面的代码,当睡眠结束之后,会执行下面的代码,导致出现线程安全,数据出现问题
synchronized同步代码块:
线程锁的细节:
1.synchonized必须写在while()循环里面
2.锁对象必须是唯一的
线程书写格式:
lock锁:
线程池:
出现原因:
以前使用多线程,用到线程的时候创建,但是用完之后就会消失
浪费资源