摘要: 下面的翻译: 例子: 输出结果:test()与test2()实现了相同的效果: 关键字synchronized与wait(),notify()/notifyAll()相结合可以实现等待/通知模式。类ReentrantLock也可以实现相同的功能,但须要借助Condition对象。Condition类 阅读全文
posted @ 2017-04-18 23:20 soar_hu 阅读(459) 评论(0) 推荐(0) 编辑
摘要: ThreadLocal为解决多线程程序的并发问题提供了一种新的思路。再spring框架中大量使用。使用这个工具类可以很简洁地编写出优美的多线程程序。当使用ThreadLocal维护变量时,ThreadLocal为每个使用该变量的线程提供独立的变量副本,所以每一个线程都可以独立地改变自己的副本,而不会 阅读全文
posted @ 2017-04-18 22:03 soar_hu 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 在很多情况下,主线程创建并启动子线程,如果子线程中有大量的耗时运算,主线程将早于子线程结束,如果想让主线程等待子线程结束后再结束,那么我们可以使用join()方法。调用join()方法的意思是当前线程使调用了该方法的线程执行完成然后再执行自己本身。api文档如下: 简单翻译如下:调用该方法的线程会等 阅读全文
posted @ 2017-04-18 21:11 soar_hu 阅读(299) 评论(0) 推荐(0) 编辑
摘要: 在线程里,生产者就是生产数据的线程,消费者就是消费数据的线程。在多线程开发当中,如果生产者处理速度很快,而消费者处理速度很慢,那么生产者就必须等待消费者处理完,才能继续生产数据。同样的道理,如果消费者的处理能力大于生产者,那么消费者就必须等待生产者。为了解决这个问题于是引入了生产者和消费者模式。下面 阅读全文
posted @ 2017-04-18 14:59 soar_hu 阅读(791) 评论(0) 推荐(0) 编辑
摘要: 线程之间的通信可以通过共享内存变量的方式进行相互通信,也可以使用api提供的wait(),notify()实现线程之间的通信。wait()方法是Object类的方法,改方法用来将当前的线程置入"预执行队列"中,并且在wait()方法代码处停止执行进行等待,知道接收到同一个monitor对象的noti 阅读全文
posted @ 2017-04-18 12:50 soar_hu 阅读(669) 评论(1) 推荐(1) 编辑