随笔分类 - Java并发
摘要:本概念 BIO编程 传统的BIO编程 代码示例: public class Server { final static int PROT = 8765; public static void main(String[] args) { ServerSocket server = null; try
阅读全文
摘要:CyclicBarrier CyclicBarrier是用来一个关卡来阻挡住所有线程,等所有线程全部执行到关卡处时,再统一执行下一步操作。假设一个场景:每个线程代表一个跑步运动员,当运动员都准备好后,才一起出发,只要有一个人没有准备好,大家就等待 。 代码示例: public class UseCy
阅读全文
摘要:Executor的常用方法 为了更好的控制多线程,JDK提供了一套线程框架Executor,帮助开发人员有效地进行线程控制。它们都在java.util.concurrent包中,是JDK开发包的核心。其中有一个重要的类:Executors,他扮演这线程工厂的角色,我们通过Executors可以创建特
阅读全文
摘要:代码示例: public interface Data { String getRequest(); } public class FutureData implements Data{ private RealData realData ; private boolean isReady = fa
阅读全文
摘要:BlockingQueue:顾名思义,首先它是一个队列,并且支持阻塞的机制,阻塞的放入和得到数据。我们要实现LinkedBlockingQueue下面的两个方法put和take. put(anObject):把anObject加到BlockingQueue里,如果BlockingQueue没有空间,
阅读全文
摘要:线程通信概念:线程是操作系统中独立的个体,但这些个体如果不经过特殊的处理就不能成为一个整体,线程间的通信就成为整体的必用方式之一。当线程存在通信指挥,系统间的交互性会更强大,在提高CPU利用率的同时就会使开发人员对线程任务在处理的过程中进行有效的把握和监督。 使用wait/notify方法实现线程间
阅读全文
摘要:在java1.5中Lock对象来实现同步的效果,而且使用上更方便。 使用ReentrantLock实现同步 public class MyService { private Lock lock = new ReentrantLock(); public void methodA(){ try { l
阅读全文
摘要:wait/notify的作用 wait()方法的作用是使当前执行代码的线程进行等待,wait()是Object类的方法,用来将当前线程置入预执行队列中,并且在wait()所在的代码处停止执行,直到接到通知或被中断为止。wait()调用前,必须获得该对象的对象级锁,即只能在同步方法或者同步代码块中调用
阅读全文
摘要:分析volatile关键字可以从这三个方面分析,什么是程序的原子性,什么是程序的可见性,什么是程序的有序性 什么是程序的原子性 以下语句那些是原子操作? public class ThreadCounter implements Runnable { private int count = 0; @
阅读全文
摘要:synchronized是用来解决多线程情况下的线程安全问题的,它可以修饰方法也可以修饰语句块 , 那么什么情况下是线程安全和线程不安全呢 ? 方法内的变量是线程安全的 , 类的实例变量是非线程安全的 首先来看一个非线程安全的例子 public class HasSefPrivateNum { pr
阅读全文

浙公网安备 33010602011771号