![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
并发编程
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 · 128 阅读 · 0 评论 -
线程的五种状态
新建状态 当用new操作符创建一个线程时, 例如new Thread(r),线程还没有开始运行,此时线程处在新建状态。 当一个线程处于新生状态时,程序还没有开始运行线程中的代码 就绪状态 一个新创建的线程并不自动开始运行,要执行线程,必须调用线程的start()方法。当线程对象调用start()方法即启动了线程,start()方法创建线程运行的系统资源,并调度线程运行run(...原创 2019-03-21 20:00:21 · 160 阅读 · 0 评论 -
线程安全问题
目录 1、线程安全 2、内存模型JMM 3、多线程有三大特性 原子性 可见性 有序性 4、Volatile特性 5、ThreadLocal ThreadLoca实现原理 6、线程安全解决办法 1)Lock锁 2)同步代码块synchronized 3)同步方法 ①非静态同步方法使用的是this锁 ②静态同步方法使用的是class锁 Lock与synchroni...原创 2019-03-21 23:10:04 · 116 阅读 · 0 评论 -
线程通讯
什么是多线程之间通讯? 多线程之间通讯,其实就是多个线程在操作同一个资源,但是操作的动作不同。 用notify()和wait()方式实现通讯。 wait、notify方法 1.因为涉及到对象锁,他们必须都放在synchronized中来使用. Wait、Notify一定要在synchronized里面进行使用。 2.Wait必须暂定当前正在执行的线程,并...原创 2019-03-22 09:26:07 · 155 阅读 · 0 评论 -
线程池(简单实现自定义线程池)
目录 并发队列 ConcurrentLinkedDeque BlockingQueue 线程池 线程池的好处 线程池四种创建方式 ①newCachedThreadPool ②newFixedThreadPool ③newScheduledThreadPool ④newSingleThreadExecutor 线程池原理 自定义线程线程池 并发队列 在并发队列上JDK提供...原创 2019-03-22 19:31:43 · 1276 阅读 · 0 评论 -
Java锁
目录 重入锁 读写锁 悲观锁、乐观锁 乐观锁 version方式 CAS操作方式 悲观锁 分布式锁 重入锁 重入锁,也叫做递归锁,指的是同一线程 外层函数获得锁之后 ,内层递归函数仍然有获取该锁的代码,但不受影响。 在JAVA环境下ReentrantLock(轻量级) 和synchronized(重量级)都是 可重入锁 synchronized与Lock的区别 1.首先sy...原创 2019-03-22 23:34:43 · 748 阅读 · 0 评论