并发编程
2016-09-02 06:56:00 0 举报
AI智能生成
并发编程是一种程序设计技术,它允许多个计算过程或任务同时进行。这种技术的主要优点是可以提高系统的响应速度和处理能力,因为它可以充分利用多核处理器的优势。并发编程的主要挑战在于如何正确地管理多个并发任务,以避免数据竞争和其他潜在的问题。为了实现并发编程,程序员需要使用特定的编程语言特性,如线程、进程、锁和信号量等。并发编程在许多领域都有广泛的应用,包括网络服务器、数据库系统、图形用户界面和实时系统等。
作者其他创作
大纲/内容
多线程优势
提升资源利用率和系统吞吐率
发挥多处理器的强大能力
基础构建模块
同步容器类
同步容器执行check-then-act操作时,没有客户端加锁也是线程安全的,但当多个线程修改容器时,可能会出现意料之外的情况
迭代器和ConcurrentModificationException
如果在迭代期间计数器被修改,执行hasNext和next将抛出ConcurrentModificationException
隐藏的迭代器
容器的toString()方法,equals,hashCode等方法都可能抛出ConcurrentModificationException
并发容器
通过并发容器代替同步容器可以极大的提高伸缩性并降低风险
例如ConcurrentHashMap,CopyOnWriteArrayList,Queue,BlockingQueue等
双端队列,Deque,BlockingDeque
生产者与消费者
用阻塞队列支持生产者和消费者模式,将数据的生产和使用过程解耦来简化工作负担
使用双端队列,支持工作秘取,既每个消费者都有一个双端的工作队列,当某个消费者完成自己队列的全部工作,可以从其他消费者的双端队列末尾秘密的取得工作
阻塞方法和中断方法
Thread提供interrupt方法用于中断县城或者查询线程是否已经被中断
当代码调用了一个会抛出interruptedException异常的方法时,该方法自己就变成了一个阻塞方法
传递异常
恢复中断
同步工具类
闭锁
延迟线程的进度直到其到达终止状态
CountDownLatch
FutureTask
Semaphore,信号量,用来控制同时访问某个特定资源的操作数量
栅栏,CyclicBarrier,所有线程同时到达栅栏位置才能继续执行
结构化并发应用程序
0 条评论
下一页