多线程理解
AAA821
这个作者很懒,什么都没留下…
展开
-
怎么编写一个守护进程
例子如下 package MyThread; import java.io.IOException; public class DaemonTest extends Thread { public DaemonTest() { super("Wcb"); } /** * 守护线程的run方法,它将和其他线程同时运行 */ public void run() { for (i原创 2017-09-11 00:00:17 · 365 阅读 · 0 评论 -
上下文切换
以下内容转载自http://blog.csdn.net/u010425776/article/details/54233279 上下文切换会带来额外的开销 线程的运行机制 一个CPU每个时刻只能执行一条线程;操作系统给每条线程分配不同长度的时间片;操作系统会从一堆线程中随机选取一条来执行;每条线程用完自己的时间片后,即使任务还没完成,操作系统也会剥夺它的执行权,让另一条线程执转载 2017-09-28 14:37:07 · 604 阅读 · 0 评论 -
AQS的例子分析二
这个例子不单是让我们更了解AQS的具体使用,还明白了AQS类中state字段的作用因为tryAcquire这个方法是我们自己实现的,方法作用是尝试获取资源,根据我们自己的逻辑来决定是否获取成功.像下面这个例子,我的逻辑就是当资源小于0时,线程就获取失败,所以我先调用setState方法设初始值放到state字段,值为N,然后每来一个线程就将N-1,然后判断是否N-1小于0,从而实现线程资源的控制工...转载 2018-03-31 16:30:39 · 408 阅读 · 0 评论 -
AQS的理解
以下内容大部分出自:https://blog.csdn.net/u013332124/article/details/79701415AQS即AbstractQueuedSynchronizer作用:实现线程间的通信下面的所有Unsafe.comparseAndSet...方法都是用CAS进行比较和设置值的AQS说是一个同步器框架,但它其实就是一个Java类:AbstractQueuedSynch...转载 2018-03-28 17:06:34 · 812 阅读 · 0 评论 -
AQS的例子分析
https://blog.csdn.net/AAA821/article/details/79712522这篇博客介绍了一下AQS然后看了下阿里Druid的源码,举其中一个方法来解释AQS的作用,通过例子可以更好的理解AQS的作用这个是SimpleCanalConnector的connect方法,public void connect() throws CanalClientException {...原创 2018-03-28 17:20:03 · 762 阅读 · 0 评论 -
ThreadLocal
以下大部分内容出自https://www.jianshu.com/p/3f3620f9011d和https://www.iteye.com/topic/103804 首先,ThreadLocal 不是用来解决共享对象的多线程访问问题的,一般情况下,通过ThreadLocal.set() 到线程中的对象是该线程自己使用的对象,其他线程是不需要访问的,也访问不到的。各个线程中访问的是不同的对象。 ...转载 2018-09-24 15:43:50 · 158 阅读 · 0 评论