thread线程使用

wait()等价于condition.await() 添加一个线程到等待集中
notify()/notifyAll()等价于condition.signall() 解除等待线程的阻塞状态
synchronized 修饰静态方法时,获取的是类对象的内部锁

thread pool 线程池 在应用中产生许多线程时会大大降低性能,这时应该考虑使用线程池。 一个线程池中包含许多准备运行的的空闲线程,将Runna对象交给线程池,就会有一个线程调用run方法,当run方法退出时,线程不会死亡,而是在线程池中准备为下一个请求提供服务。

专门有一个线程用于接收UI的事件,用于修改界面,对交互做出反应。UI线程。 每个单独的任务都在一个独立的线程中运行,而操作系统把cpu的时间片分给每个线程,这样每个线程都有运行的机会,由于时间很短看起来就像是并发执行一样。线程的机制就是这样,如果正常运行的话,同一优先级的每个线程都有相等的机会在cpu中运行,这里不考虑那些sleep或者wait的线程,这时它们会等待一段时间,满足条件后再运行。 使用线程实际上也是给其他任务提供运行的机会。在一个框架的主线程不应该有耗时的任务,否则会影响主线程与外界的交互。耗时的任务应该另开启一个线程运行。 ??线程池?这样可以开启多个任务,同时又少用资源吗? run() 该线程要执行的任务指令。 在具有多个处理器的机器上,每一个处理器上可以运行一个线程,可以有多个线程并行运行。当然,如果线程的数目多于处理器,调度依然采用时间片机制。现在的计算机大多使用抢占式调度,像手机可能使用协作式调度。 一个线程有六种状态:new runnable(可运行状态) blocked waiting time waiting terminated runnable 可运行状态,可能运行,也可能没有在运行(例如在等待cpu的时间片) 所有的线程都由线程调度器来调度,当线程被阻塞或者等待时,处于非活动状态,消耗很少的资源,直到线程调度器重新激活它才会执行。 blocked阻塞状态 当一个线程视图获取一个对象的内部锁,而该所被其他线程持有,就会进入阻塞状态。 每一个对象都有一个内部锁,每个锁都有一个内部条件。synchronized就是调用这个内部锁的。
posted @ 2012-03-08 20:46  quding0308  阅读(201)  评论(0编辑  收藏  举报