多线程
概念:指在程序执行过程中,能够执行程序的一个执行单位,每个程序至少有一个线程,即程序本身。
状态:运行,就绪,挂起,结束
名词解释:
synchronized:修饰线程的关键字,能够自动释放线程中的对象锁。
stort():启动线程,使线程由就绪状态调度为运行状态。
run():是线程所关联的执行代码。
sleep():是线程thread的方法,调用他不会释放对象锁,而是暂停线程执行时间,将执行机会让给其它线程,监控状态依然保持,同时自动恢复。
wait():是object类方法,调用它会释放对象锁,即本线程释放对象锁,进入线程等待池,只能在同步控制方法或同步控制块中使用。
同步:请求状态一致,数据状态一致,页面整体刷新,即在后台处理结束需要重新跳转或转发处理至前台。
异步:请求状态不一致,数据状态不一致,页面局部刷新,即在后台处理结束将结果发送至前台。
实现线程的方法:
1.继承thread类,重载thread类的方法run();
2.声明一个类,该类实现runnable接口,然后实现方法run()。
同步实现方法:
1.同步方法,在方法返回值类型后加synchronized。
2.同步块,直接加synchronized
补充:lock能完成所有synchronized所实现的所以功能,但是lock需要手工释放对象锁,可以非阻塞方式去拿锁(trylock)。