java并发编程
java并发编程
jannals
没有失败,只有缓慢的成功
展开
-
java线程(十)之Exchanger
文章目录Exchanger Exchanger Exchanger可以在两个线程之间交换数据,只能是2个线程,它不支持更多的线程之间互换数据。 当线程A调用Exchange对象的exchange()方法后,他会陷入阻塞状态,直到线程B也调用了exchange()方法,然后以线程安全的方式交换数据,之后线程A和B继续运行 public class Main { public sta...原创 2019-05-03 17:09:49 · 98 阅读 · 0 评论 -
java线程(九)之LockSupport
文章目录LockSupport方法案例 LockSupport LockSupport是用来创建锁和其他同步类的基本线程阻塞原语。 LockSupport中的park() 和 unpark() 的作用分别是阻塞线程和解除阻塞线程,而且park()和unpark()不会遇到Thread.suspend和Thread.resume所可能引发的死锁”问题。 因为park() 和 unpark()有许...原创 2019-05-03 17:05:35 · 203 阅读 · 0 评论 -
java线程(八)之CyclicBarrier
文章目录CyclicBarrierCyclicBarrier与CountDownLatch区别案例 CyclicBarrier CyclicBarrier(循环栅栏)是一个同步辅助类。它允许两个或者多个线程在某个点上进行同步。 CyclicBarrier字面意思是可循环(Cyclic)使用的屏障(Barrier).因为该Barrier在释放等待线程后可以重用(计数器可以反复使用),所以称它为循...原创 2019-05-03 17:04:15 · 228 阅读 · 0 评论 -
java线程(七)之CountDownLatch
文章目录CountDownLatch方法场景案例 CountDownLatch CountDownLatch是一个同步辅助类。jdk1.5后CountDownLatch也可以实现join功能,并且比join得功能更多 CountDownLatch的构造函数接收一个int类型的参数作为计数器,如果想等待N个点完成就传入N。调用CountDownLatch的countDown()方法,N就减1,调...原创 2019-05-03 17:03:03 · 322 阅读 · 0 评论 -
java线程(六)之ThreadLocal
文章目录ThreadLocal简介方法原理分析线程池与ThreadLocal内存泄露 ThreadLocal 简介 ThreadLocal不是用来解决共享对象的多线程访问问题的,一般情况下,通过ThreadLocal.set() 到线程中的对象是该线程自己使用的对象,其他线程是不需要访问的,也访问不到的。各个线程中访问的是不同的对象。ThreadLocal使得各线程能够保持各自独立的一个对象...原创 2019-05-03 16:52:34 · 220 阅读 · 0 评论 -
java线程(五)之线程池
文章目录线程池的作用java线程池的原理合理设置线程池线程池监控线程池实现类线程池案例线程池优化与原则技巧为线程池和线程取名根据上下文切换线程名称显示安全的关闭线程处理中断监控队列和保持长度有限异常处理监控队列中等待时间优先使用CompletableFuture同步队列 线程池的作用 线程池作用就是限制系统中执行线程的数量。 根据系统的环境情况,可以自动或手动设置线程数量,达到运行的最佳效果;少...原创 2019-05-03 16:47:27 · 309 阅读 · 0 评论 -
java线程(四)之线程的中断
文章目录线程的中断案例 线程的中断 java提供了中断机制,我们可以使用它来结束一个线程。这种机制要求线程检查它是否被中断了。然后决定是不是响应这个中断请求,线程允许忽略中端请求并且继续执行。Java的中断是一种协作机制,也就是说调用线程对象的interrupt()并一定就中断了正在运行的线程,它只是要求线程自己在合适的时机中断自己。每个线程都有一个boolean的中断状态(不一定就是对象的...原创 2019-05-03 16:39:21 · 337 阅读 · 0 评论 -
java线程(三)之线程通信
文章目录wait/notifywaitnotifyCondition(等待通知) wait/notify 等待(wait): 一个线程因执行目标动作所需的保护条件未满足而被暂停的过程。 通知(Notify): 一个线程更新了系统的状态,使得其他线程所需的保护条件得以满足的时候唤醒那些被暂停的线程的过程。 java中使用Object类的wait()和wait(long)来实现等待(wait),...原创 2019-05-03 16:35:07 · 136 阅读 · 0 评论 -
java线程(二)之线程同步
文章目录线程同步锁的特性synchronizedLock接口synchronized与Lock对比读写锁死锁 线程同步 线程安全问题产生的前提是多个线程并发访问共享资源(如果对资源的访问顺序敏感,就称存在竞态条件),为了防止共享资源可能出现错误或者数据不一致,引入了临界区概念(导致竞态条件发生的代码区称作临界区)。临界区是一个用以访问共享资源的代码块,这个代码块在同一个时间内只允许一个线程执...原创 2019-05-03 16:34:59 · 172 阅读 · 0 评论 -
java线程(一)之基本概念
文章目录基本概念线程的状态线程管理线程创建与运行守护线程的创建与运行线程的属性线程方法run与startsleepyieldjoin废弃的方法线程栈异常处理线程组 基本概念 同步和异步 同步和异步通常用来形容一次方法调用。同步方法调用一旦开始,调用者必须等到方法调用返回后,才能继续后续的行为。异步方法调用更像一个消息传递,一旦开始,方法调用就会立即返回,调用者就可以继续后续的操作。 当有...原创 2019-05-03 16:34:50 · 188 阅读 · 0 评论