多线程---线程池的概念和使用
摘要:程序启动一个新线程成本是比较高的,创建线程效率不是很高。而使用线程池可以很好的提高性能,尤其是当程序中要创建大量生存期很短的线程时,应该考虑使用线程池。 线程池的好处:线程池里的每一个线程代码结束后,线程不会死亡,而是返回到线程池中成为空闲状态,等待下一个对象来使用。 线程池的使用: 1.创建一个线
阅读全文
多线程-----线程组
摘要:线程组的概念: 把多个线程组合到一起。它可以对一批线程进行分类管理。 线程组的使用: 方式一: 1.建立ThreadGroup的对象。 2.在创建Thread对象时,在创建时将ThreadGroup的对象加入参数中。 Thread(ThreadGroup group, String name) 方式
阅读全文
线程的同步-----Lock同步锁
摘要:Lock是java5提供的一个线程同步机制--实现提供了比使用synchronized方法和语句可获得的更广泛的锁定操作。 ReadLock、WriteLock、ReentrantLock 是Lock接口的三个实现类。 常用的是ReentrantLock。 Lock接口提供的两个方法: lock()
阅读全文
线程的通讯-----wait和notify的使用
摘要:线程通讯:一个线程完成自己任务,要通知另一个线程完成另一个任务。 wait():等待,挂起.... 如果线程执行了wait方法,那么该线程会进入阻塞状态,阻塞状态下的线程必须要被其他线程调用notify方法才能唤醒。 notify():唤醒 唤醒进入阻塞状态的线程中的任意一个。 notifyAll(
阅读全文
线程的同步问题------synchronized关键字的运用
摘要:当多线程程序出现以下情况就需要使用同步来解决: 1.有共享数据。 2.多条语句操作共享数据。 实现同步的方法: 方式一:同步代码块: 同步代码块的格式: synchronized(锁对象){ 需要被同步的代码 } 同步代码块要注意的细节: 1.锁对象可以是任意的对象。 2.锁对象必须是多线程共享的资
阅读全文