多线程
文章平均质量分 60
TangXW_
这个作者很懒,什么都没留下…
展开
-
守护线程
java中有两类线程,user thread(用户线程)和daemon thread(守护线程)。这两种线程本质一样,只不过如果用户线程全部退出,那么守护线程也就没什么好执行的了,java虚拟机就会退出。也就是守护线程是用户线程提供服务的,如果用户线程退出,那么守护线程也就没什么好维护的了。设置守护线程:public final void setDaemon(boolean on);但是注原创 2017-08-18 11:14:58 · 193 阅读 · 0 评论 -
并发下线程池的最佳数量计算
原文地址:https://blog.csdn.net/qq_34417408/article/details/78895573转载 2019-02-28 17:51:16 · 1021 阅读 · 0 评论 -
Java ExecutorService四种线程池的例子与说明
原文地址:https://www.cnblogs.com/zhaoyan001/p/7049627.html1、new Thread的弊端执行一个异步任务你还只是如下new Thread吗?new Thread(new Runnable() { @Override public void run() { // TODO Auto-generated method ...转载 2018-06-27 22:01:23 · 233 阅读 · 0 评论 -
单例模式在多线程下的安全性
贴出一篇我参考的文章:http://blog.csdn.net/cselmu9/article/details/51366946这里补充一下就是下面的单例为什么是线程不安全的:public class Singleton1 { private static Singleton1 instance = null; private Singleton1(){ } // 唯原创 2017-12-18 14:33:31 · 528 阅读 · 0 评论 -
多线程共享资源问题演示
这篇文章是根据 http://www.tianshouzhi.com/api/tutorials/mutithread/67做的一些测试总结:java四种同步块:1.实例方法同步注意:注意:多个线程要运行的是同一个对象实例的同步方法,如果一个每个线程运行的是不同的对象实例的同步方法,是没有同步效果的,因为每个对象实例是把自身当成锁,就导致没有公用一个锁。测试代码:public原创 2017-08-28 11:15:04 · 247 阅读 · 0 评论 -
wait()、notify()、notifyAll()与线程通信方式总结
原文地址:http://www.tianshouzhi.com/api/tutorials/mutithread/691、通过wait()、notify()、notifyAll()进行线程通信线程通信的目标是使线程间能够互相发送信号。另一方面,线程通信使线程能够等待其他线程的信号。例如,线程B可以等待线程A的一个信号,这个信号会通知线程B数据已经准备好了。Java有转载 2017-12-21 14:11:06 · 258 阅读 · 0 评论 -
Callable与Future
原文地址:http://www.tianshouzhi.com/api/tutorials/mutithread/111Callable与Future的作用是,我们可以启动一个线程去执行某个任务,而另外一个线程等待获取这个结果后执行响应的操作。假设我们有这样一个案例,线程A中进行某种运算,而主线程需要等待其运算结果,以便进行接下来的操作。1、传统实现方式在没转载 2017-09-01 10:11:52 · 184 阅读 · 0 评论 -
ThreadPoolExecutor
原文地址:http://www.tianshouzhi.com/api/tutorials/mutithread/310ThreadPoolExecutor 类是JDK提供的ExecutorService接口的默认实现。提供一个可扩展的线程池实现。ExecutorService在Executor接口的基础上,添加了一些可以管理Executor自身生命周期以及任务的生命周期的方法,每个转载 2017-08-31 16:49:32 · 524 阅读 · 0 评论 -
CyclicBarrier
原文地址:http://www.tianshouzhi.com/api/tutorials/mutithread/113CyclicBarrier字面意思回环栅栏,通过它可以实现让一组线程等待至某个状态之后再全部同时执行。叫做回环是因为当所有等待线程都被释放以后,CyclicBarrier可以被重用。我们暂且把这个状态就叫做barrier,当调用await()方法之后,线程就处于bar转载 2017-08-31 10:21:43 · 183 阅读 · 0 评论 -
Semaphore
原文地址:http://www.tianshouzhi.com/api/tutorials/mutithread/114Semaphore翻译成字面意思为 信号量,Semaphore可以控同时访问的线程个数,通过 acquire() 获取一个许可,如果没有就等待,而 release() 释放一个许可。 Semaphore类位于java.util.concurrent包下,转载 2017-08-31 09:57:54 · 193 阅读 · 0 评论 -
CountDownLatch
CountDownLatch类位于java.util.concurrent包下,利用它可以实现类似计数器的功能。比如有一个任务A,它要等待其他4个任务执行完毕之后才能执行,此时就可以利用CountDownLatch来实现这种功能了。CountDownLatch类只提供了一个构造器:public CountDownLatch(int count) { }; //参数count为计数值转载 2017-08-30 17:19:41 · 214 阅读 · 0 评论 -
AbstractQueuedSynchronizer
AbstractQueuedSynchronizer是JAVA 5构建同步组件的基础,通常简称为AQS。AQS是java并发包中最核心的一个类,没有之一。可以说没有弄懂AQS,就没有真正的掌握java并发包,其是在LockSupport和Unsafe类的基础上实现的,有了前面的介绍,理解AQS就更为容易。AQS的主要使用方式继承,我们通过编写一个类继承AbstractQueuedSynch转载 2017-08-30 16:13:56 · 179 阅读 · 0 评论 -
Java内存模型
原文地址:http://www.tianshouzhi.com/api/tutorials/mutithread/66Java内存模型规范了Java虚拟机与计算机内存是如何协同工作的。Java虚拟机是一个完整的计算机的一个模型,因此这个模型自然也包含一个内存模型——又称为Java内存模型。如果你想设计表现良好的并发程序,理解Java内存模型是非常重要的。Java内存转载 2017-08-29 14:56:38 · 197 阅读 · 0 评论 -
Java类锁、对象锁、私有锁、隐式锁
原文地址:http://www.tianshouzhi.com/api/tutorials/mutithread/68类锁和对象锁是否会冲突?对象锁和私有锁是否会冲突?通过实例来进行说明。一、相关约定为了明确后文的描述,先对本文涉及到的锁的相关定义作如下约定:1. 类锁:在代码中的方法上加了static和synchronized的锁,或者synchronized转载 2017-08-28 14:25:08 · 851 阅读 · 0 评论 -
创建并运行Java运行时代码的三种方式
原文地址: http://www.tianshouzhi.com/api/tutorials/mutithread/621 概述在Java中,创建线程运行时代码有三种方式。第一种:继承Thread类,覆写其run方法,这种方式我们在之间的案例中已经见过。第二种:实现Runnable接口,实现run方法,Thread类也实现了Runable接口。第转载 2017-08-15 15:23:29 · 1138 阅读 · 0 评论 -
Synchronized锁在Spring事务管理下,为啥还线程不安全?
原文地址:https://mp.weixin.qq.com/s/Ad6BCN3fLlkaE06k1iyurg测试的代码:https://download.csdn.net/download/qq_30788949/11015992原创 2019-03-13 11:52:30 · 296 阅读 · 2 评论