乐趣区

关于程序员:Java并发教程编程入门自学教程菜鸟教程免费教程分享

教程简介

Java 并发入门教程 – 从简略的步骤理解 Java 并发,从根本到高级概念,包含概述,环境设置,次要操作,线程通信,同步,死锁,ThreadLocal,ThreadLocalRandom,Lock,ReadWriteLock,Condition,AtomicInteger,AtomicLong,AtomicBoolean,AtomicReference,AtomicIntegerArray,AtomicLongArray,AtomicReferenceArray,Executor,ExecutorService,ScheduledExecutorService,newFixedThreadPool,newCachedThreadPool,newScheduledThreadPool,newSingleThreadExecutor,ThreadPoolExecutor,ScheduledThreadPoolExecutor,Futures and Callables,Fork-Join 框架,BlockingQueue,ConcurrentMap,ConcurrentNavigableMap。

线程的劣势

1. 充分利用多 CPU 的能力,进步零碎吞吐量:在蒸煮 (工作 1) 的过程中,同时能够炒菜(工作 2)。当然你的煤气灶是单灶就没法了。。。即便在单 CPU 的机器上,多线程也可能进步程序的吞吐量,如果某个操作被阻塞(同步 I / O 操作),后续的逻辑不得不期待其实现。如果将其离开,放入不同的线程中,则在 I / O 上被阻塞的线程不会影响另一个线程被调度执行。比方你等烧水的工夫能够刷朋友圈。这样做的前提是,程序首先是能够被离开,另一个线程的执行并不依赖 I / O 操作的后果。

2. 简化建模:你有三个工作要解决,改 BUG, 给老板写报告,关注股市行情等。当你正在搜索枯肠地改 bug,老板突然发消息让你尽快交报告,还同时高频察看股价以便出手解套。有时候你要兼顾几个工作,经常让人倍感疲乏。程序也一样,有很多 task 要解决,如何以优雅的形式进行是一个设计问题。JAVA 容许将简单利用合成为不同的工作,每个任务分配给独立的线程运行。从而使编程逻辑清晰。很多框架如 Servlet,RMI 都是利用此模型开发,框架来治理申请,创立线程,均衡负载,散发 (dispatch) 申请给相应的业务解决组件。屏蔽了底层的细节,开发人员只须要关注业务逻辑。

3. 进步用户界面响应:用 Eclipse IDE 都晓得,如果触发一个长时间的工作(编译工程,搜寻文件,更新等),界面仍然能够承受用户的其余操作。对于长时间的工作,会放入独自的线程外面实现,从而不影响 Event Thread 解决用户别的很快实现的申请。

4. 异步事件处理的简单化:Java NIO 提供了一种非阻塞 IO 机制,在超大量申请来时,可能会触到多线程的性能瓶颈,通过 NIO 实现单线程内的异步 IO,从而缩小线程的创立数量,并且不阻塞其余逻辑。然而 NIO 绝对比较复杂也容易出错。而通过简略的多线程,同步 IO 曾经能够满足大部分需要。

教程目录

  • Java 并发教程
  • Java 并发 – 概述
  • Java 并发 – 环境设置
  • Java 并发 – 次要操作
  • 深刻沟通
  • Java 并发 – 同步
  • Java 并发 – 死锁
  • Java 并发 – ThreadLocal 类
  • ThreadLocalRandom 类
  • Java 并发 – 锁接口
  • Java 并发 – ReadWriteLock 接口
  • Java 并发 – 条件接口
  • Java 并发 – AtomicInteger 类
  • Java 并发 – AtomicLong 类
  • Java Concurrency – AtomicBoolean 类
  • Java 并发 – AtomicReference 类
  • Java 并发 – AtomicIntegerArray 类
  • Java Concurrency – AtomicLongArray 类
  • AtomicReferenceArray 类
  • Java 并发 – Executor Interface
  • ExecutorService 接口
  • ScheduledExecutorService 接口
  • newFixedThreadPool 办法
  • newCachedThreadPool 办法
  • newScheduledThreadPool 办法
  • newSingleThreadExecutor 办法
  • ThreadPoolExecutor 类
  • ScheduledThreadPoolExecutor 类
  • Java 并发 – Futures 和 Callables
  • Java Concurrency – Fork-Join 框架
  • Java 并发 – BlockingQueue 接口
  • Java 并发 – ConcurrentMap 接口
  • ConcurrentNavigableMap 接口
  • Java 并发 – 有用的资源
退出移动版