
Java并发编程
文章平均质量分 89
孤独的偷学者
这个作者很懒,什么都没留下…
展开
-
Java并发包学习3
5:Future和Callable的使用在JDK1.5的并发包可以使用Future和Callable来使线程具有返回值的功能。Callable与Runnable的主要区别:Callable接口的call()方法可以有返回值,而Runnable的run()没有。call()方法可以声明抛出异常,而run()方法不能。5.1.:Callable的简单使用5.2: get()和sumbit()方法的使用1、 get()方法:get()方法是具有阻塞特性的,它可以结合future中的i原创 2021-10-02 15:20:00 · 256 阅读 · 0 评论 -
Java并发包学习2
4:Executor与ThreadPoolExecutor的使用在开服务器的使用,软件需要处理执行时间短数目却非常大的请求,如果每次都为请求创建一个线程,会导致性能非常的差,因为每次创建线程都需要Jvm频繁的创建与销毁线程,是比非常大的开销。利用线程池"ThreadPool"可以对线程对象进行服用,则不需要频繁的去创建和销毁。4.1:Exectutor接口的介绍它的子接口与实现类:4.1.1:使用Executors工厂类创建线程池newCachedThreadPool():创建无界线程池。n原创 2021-10-02 10:50:08 · 105 阅读 · 0 评论 -
Java并发包学习笔记
1、Semaphore与Exchanger的使用 1.1、Semphore的使用 Semaphore该类的主要作用就是限制线程的并发数量,它所提供的功能是Synchronized关键字的升级版,可以让线程同步(一个一个执行任务,而不是并行执行)来保证程序逻辑的正确性。 1.2、类Semaphore的常用API构造函数的参数 int permits它代表着同一时间内,最多允许多少个线程同时执行acquire()与release()之间的代码,无参方法acquire()的作用是使用一个许可(p原创 2021-10-01 11:31:57 · 368 阅读 · 0 评论 -
Java并发编程Lock的使用
该篇文章主要内容:ReentrantLock类的使用ReentrantReadWriteLock类的使用1.1: 使用ReentrantLock类ReentrantLock类可以认为是synchronized的升级版,在synchronized实现线程之间的同步互斥功能外,还具有嗅探锁定,多路分支通知等功能,而且在使用上也比synchronized更加灵活。1.1.1:使用ReentrantLock类进行同步实例1:实例二:仅修改Test类1.1.2:使用Condition原创 2021-09-30 17:51:21 · 95 阅读 · 0 评论 -
Java多线程学习笔记(synchronized关键字的使用)
1:对象变量的并发访问1.1:synchronized同步方法“非线程安全”问题存在与“实例变量中”,如果是方法内部的私有变量,则不存在“非线程安全”问题。只有共享资源的读写才需要同步,如果不是共享资源则没有必要同步。如果多个线程访问一个对象中的实例变量则可能产生“非线程安全”问题。关键字Synchronized取得的锁都是对象锁,若多个对象访问的是同一个对象,则先拿到锁的先执行,其它的线程只能等待锁的释放。如果多线程访问多个对象则JVM会创建多个锁。实例:如原创 2021-09-29 16:16:35 · 153 阅读 · 0 评论