宋利兴__第十三章 多线程 第二节

 

第十三章 多线程 第二节

      复习:进程里包含线程,多条控制流,多条线程共资源。

类具备多线程的能力三种方法:继承(extends)Thread类,实现(implements)Runnable接口,

线程的生命周期:

1、新建状态(new Thread)/Thread t1=new Thread();

2、就绪状态(runnable)线程已启动,正在等待CPU分配时间片;

3、运行(running)线程获得CPU资源正在执行任务(run()方法),此时除非此线程自动放弃CPU资源或者有优先级更高的线程进入,线程将一直运行到结束。

4、死亡(dead)自然终止:正常运行run()方法后终止

异常终止:调用stop()方法让一个线程终止运行

5、堵塞(blocked)1>正在睡眠,用sleep(long t)方法线程进入睡眠,2>正在等待:调用wait()方法, 3>被另一个线程所阻塞:调用suspend()方法

线程的优先级别:

把线程从就绪状态进入运行状态的过程叫做线程调度。负责调度工作的机构叫做调度管理器。

常用方法:run()/start()/sleep(long t)/sleep(long millis,int nanos)/wait()/notify()/yied()/stop().

线程对象的生命周期从创建到结束的过程期间使用:New()àstart()àInterrupt()中断方法。

 

线程的同步(Synchronization):线程间共享代码和数据可以节省开销,提高程序运行效率。

临界资源:多个线程间共享的数据称为临界资源!

每个对象都可应于一个可称为“互斥锁”的标记,这个标记可以用来保证在任一时刻,只能有一个线程访问该对象。

好处:解决了线程安全问题;死锁

线程同步通信:为避免死锁,就应该让线程在进入阻塞状态时尽量释放其锁定的资源,以为其他的线程提供运行的机会,Object类中定义了几个有用的方法:wait()、notify()、notifyAll()。

posted @ 2011-09-15 14:40  Springside4  阅读(122)  评论(0编辑  收藏  举报