使用java也有好多年了,不能说精通。需要说明一下本人不是专职开发员
只能说了解一下,其中最好用的一个功能就是线程。
专门总结一下,方便查找
线程的概念:
1.线程是由表示程序运行状态的寄存器组成
2.线程是程序运行过程中的某一时刻的状态
3.操作系统通过多线程调度实现线程的并发
线程是动态的概念
程序,进程,线程
程序是静态的代码,进程是程序一次动态执行的过程,线程是比进程更小的执行单位
线程的创建:
1.实现runnable借口
2.集成thread类
第一种方法能更好的体现面向对象的思想
线程的优先级MIN_PRIORITY=1,MAX_PRIORITY=10,NORMAL_PRIORITY=5
优先级高的首先运行。
线程的控制:
sleep():暂停运行线程一定时间
yield():调用此方法让具有相同优先级的线程有运行的机会
join():当前线程中执行th.join(),当前线程暂停运行,等待另一线程th运行结束,才恢复可运行状态
interrupt():调用该方法可使线程从阻塞状态中恢复
currentThread():返回当前线程的引用
isAlive():判断线程处于活动状态
stop():强行终止
suspend():暂停一个线程
resume():恢复该线程
对象锁:synchronized
1.所有被访问的共享数据及访问代码都必须作为临界区。
2.synchronized表示的共享数据必须是私有的
线程间的通讯
wait():线程调用一个对象的wait方法后,该线程放入等待池,释放锁
notify():线程t调用对象的notify方法,将对象等待池中的线程移入lock pool,在lock pool中,等待对象的锁,一旦获得可以运行
生产者,消费者问题
生产者:产生资源或释放资源的线程
消费者:使用资源的线程
只能说了解一下,其中最好用的一个功能就是线程。
专门总结一下,方便查找
线程的概念:
1.线程是由表示程序运行状态的寄存器组成
2.线程是程序运行过程中的某一时刻的状态
3.操作系统通过多线程调度实现线程的并发
线程是动态的概念
程序,进程,线程
程序是静态的代码,进程是程序一次动态执行的过程,线程是比进程更小的执行单位
线程的创建:
1.实现runnable借口
2.集成thread类
第一种方法能更好的体现面向对象的思想
线程的优先级MIN_PRIORITY=1,MAX_PRIORITY=10,NORMAL_PRIORITY=5
优先级高的首先运行。
线程的控制:
sleep():暂停运行线程一定时间
yield():调用此方法让具有相同优先级的线程有运行的机会
join():当前线程中执行th.join(),当前线程暂停运行,等待另一线程th运行结束,才恢复可运行状态
interrupt():调用该方法可使线程从阻塞状态中恢复
currentThread():返回当前线程的引用
isAlive():判断线程处于活动状态
stop():强行终止
suspend():暂停一个线程
resume():恢复该线程
对象锁:synchronized
1.所有被访问的共享数据及访问代码都必须作为临界区。
2.synchronized表示的共享数据必须是私有的
线程间的通讯
wait():线程调用一个对象的wait方法后,该线程放入等待池,释放锁
notify():线程t调用对象的notify方法,将对象等待池中的线程移入lock pool,在lock pool中,等待对象的锁,一旦获得可以运行
生产者,消费者问题
生产者:产生资源或释放资源的线程
消费者:使用资源的线程