![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
多线程编程
码个锤子呀
这个作者很懒,什么都没留下…
展开
-
关于AQS中enq( )方法CAS操作的疑惑
private Node enq(final Node node) {for (;;) {Node t = tail;//如果队列为空则新建头结点if (t == null) { // Must initializeif (compareAndSetHead(new Node()))//这个操作是新建队列 //将tail指向头结点tail = head;} else {//1.将新节点的前置指针指向链表尾部node.prev = t;//2.通过CAS...原创 2020-12-17 11:07:56 · 598 阅读 · 1 评论 -
CountDownLatch的理解和使用
CountDownLatch是一个同步工具类,用来协调多个线程之间的同步,或者说起到线程之间的通信(而不是用作互斥的作用)。CountDownLatch能够使一个线程在等待另外一些线程完成各自工作之后,再继续执行。使用一个计数器进行实现。计数器初始值为线程的数量。当每一个线程完成自己任务后,计数器的值就会减一。当计数器的值为0时,表示所有的线程都已经完成一些任务,然后在CountDownLatch上等待的线程就可以恢复执行接下来的任务。CountDownLatch的用法CountDo..原创 2020-07-02 19:07:34 · 372 阅读 · 0 评论 -
Threadlocal的理解
转:关于Java的ThreadLocal网上有大量的文章在谈这个问题,为什么这个东西大家说来说去乐此不疲呢,大约是因为它本身的神秘性,经常出现在一些框架中,但是自己又很少用。亦或是因为大家本身对它的理解各有偏颇,所以成了大家热议的话题。我对ThreadLocal的理解也不深,这篇文章也不会去做什么深层次的研究,对源码分析的文章也有很多写的非常好的,我只是想从另外一个角度去认识ThreadLocal。ThreadLocal被翻译成“线程本地变量”,从名字上讲首先它是“变量”,那么,我们就来看看Java转载 2020-06-27 17:38:01 · 99 阅读 · 0 评论 -
Eclipse 多线程调试
1、设置window -->preference-->java-->debug 把supend Thread 改为suspend VM执行哪个线程点哪个,然后运行,运行到最后一行代码的时候要用F8 如果用f6可能 下个线程没有获得锁。(为什么?)...原创 2020-06-26 12:46:22 · 749 阅读 · 0 评论 -
关于为什么system.out.println 会影响内存可见性
class PrintStrint implements Runnable { private boolean isContinuePrint = true; public boolean isContinuePrint() { return isContinuePrint; } public void setContinuePRint(boolean isContinuePring) { this.isContinuePrint = isContinuePring; } pub.原创 2020-06-26 08:31:57 · 666 阅读 · 0 评论 -
System.out.println 和 System.err.println区别(对于有次序的输出很重要)
System.err和System.out的区别区别1:API解释的二者用途不同,out为标准输出,err为标准错误输出;区别2:在eclipse里运行,只管差别就是二者显示的颜色有所区别;区别3:查阅相关资料,System.out.println可能会被缓冲,而System.err.println不会,由于err不需要缓冲即可输出,直接造成了我们视觉上看到的其位置的不确定性如果要求代码输出顺序,使用system.out!!!!...原创 2020-06-24 19:46:27 · 217 阅读 · 0 评论 -
1.2使用多线程
1.2使用多线程1.2.1、继承Thread1.2.2、实现Runnable接口1.2.3、线程安全(1)自定义线程类中的实例变量针对其他线程有共享和不共享之分public class ThreadVariableAndSafe { public static void main(String[] args){ //privateRun();//变量不共享 } }/** * 变量不共享 * 每个线程用各自的实例 * */ public static原创 2020-06-14 22:32:36 · 86 阅读 · 0 评论