
并发编程
5detutu
这个作者很懒,什么都没留下…
展开
-
多线程创建方式
目录1、继承Thread类,重写run方法2、实现Runnable接口,重写run方法3、使用匿名内部类方式4、实现Callable接口,重写run方法1、继承Thread类,重写run方法class ThreadDemo extends Thread { @Override public void run() { //多线程需要执行的代码 }}public...原创 2019-03-21 19:24:56 · 172 阅读 · 0 评论 -
线程的五种状态
新建状态当用new操作符创建一个线程时, 例如new Thread(r),线程还没有开始运行,此时线程处在新建状态。 当一个线程处于新生状态时,程序还没有开始运行线程中的代码就绪状态一个新创建的线程并不自动开始运行,要执行线程,必须调用线程的start()方法。当线程对象调用start()方法即启动了线程,start()方法创建线程运行的系统资源,并调度线程运行run(...原创 2019-03-21 20:00:21 · 193 阅读 · 0 评论 -
线程安全问题
目录1、线程安全2、内存模型JMM3、多线程有三大特性原子性可见性有序性4、Volatile特性5、ThreadLocalThreadLoca实现原理6、线程安全解决办法1)Lock锁2)同步代码块synchronized3)同步方法①非静态同步方法使用的是this锁②静态同步方法使用的是class锁Lock与synchroni...原创 2019-03-21 23:10:04 · 154 阅读 · 0 评论 -
线程通讯
什么是多线程之间通讯? 多线程之间通讯,其实就是多个线程在操作同一个资源,但是操作的动作不同。 用notify()和wait()方式实现通讯。 wait、notify方法1.因为涉及到对象锁,他们必须都放在synchronized中来使用. Wait、Notify一定要在synchronized里面进行使用。2.Wait必须暂定当前正在执行的线程,并...原创 2019-03-22 09:26:07 · 190 阅读 · 0 评论 -
线程池(简单实现自定义线程池)
目录并发队列ConcurrentLinkedDequeBlockingQueue线程池线程池的好处线程池四种创建方式①newCachedThreadPool②newFixedThreadPool③newScheduledThreadPool④newSingleThreadExecutor线程池原理自定义线程线程池并发队列在并发队列上JDK提供...原创 2019-03-22 19:31:43 · 1341 阅读 · 0 评论 -
Java锁
目录重入锁读写锁悲观锁、乐观锁乐观锁version方式CAS操作方式悲观锁分布式锁重入锁重入锁,也叫做递归锁,指的是同一线程 外层函数获得锁之后 ,内层递归函数仍然有获取该锁的代码,但不受影响。在JAVA环境下ReentrantLock(轻量级) 和synchronized(重量级)都是 可重入锁synchronized与Lock的区别1.首先sy...原创 2019-03-22 23:34:43 · 800 阅读 · 0 评论