线程 临界区 Applet的生命周期

对象锁

对象锁在如下几种情况由持有线程返还

1.        当synchronized()语句执行完后

2.        当synchronized()出现异常后

3.        当持有锁的线程调用该对象的wait()方法。此时该线程将释放对象锁,而进入对象的wait pool中,等待

suspend()方法是基本的线程控制方法,在一个线程中调用t.suspend(),将使t暂停执行,要想恢复线程,必须由其他线程调用t.resume()恢复t的执行。


线程的生命周期 

线程的生命周期主要分为:新建状态,可运行状态,运行状态,阻塞状态,终止状态

会改变线程生命周期中状态的方法有:

1.      yield()(暂停当前线程,从而允许与它具有相同优先级的线程运行)

2.      当线程需要在synchronized块中等待共享数据状态改变时,调用wait()方法,这样该线程等待并且暂时释放对象锁,让其他线程获得对象锁,并且放入wait pool中,转入阻塞状态,当其他线程操作完毕后,使用notify()方法就可以让线程重新占有锁,并运行。

3.      Sleep()方法是让当前线程处于休眠状态

 

 

线程的创建

创建线程的方法有2种,一是通过创建Thread类的子类实现,二是通过实现Runnable接口的类实现。方法一创建线程要先设计Thread的子类,让后重写线程中的run方法,再用start方法启动线程。

 

 

线程的结束

 

当线程完成运行后,除了线程的正常运行结束外,也可以用stop()方法强行终止线程,但不提倡,用stop方法容易造成线程的不一致,可以使用标准flag,通过设置flag通知一个线程应该结束

 

 

并发控制,临界区

Java中对于共享数据操作的并发控制是采用封锁技术,一个程序中单独的,并发的线程对同一个对象进行访问的代码段,成为临界区,临界区可以是一个语句块或者是一个方法,并且用synchronized关键字标识。

 

Java的源文件名与程序名必须相同,其拓展名为.java

 

 Applet的生命周期

Applet生命周期相关的方法有4种

1.      Init() 加载Applet时完成初始工作,

2.      start()启动Applet的执行;

3.      stop()停止Applet的执行;

4.      destory()完成撤销清理工作,准备卸载

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章