摘要: 大家好,我是小黑,一个在互联网苟且偷生的农民工。 先问大家一个问题,在主线程中创建多个线程,在这多个线程被启动之后,主线程需要等子线程执行完之后才能接着执行自己的代码,应该怎么实现呢? Thread.join() 看过我 并发编程之:线程 的朋友应该知道怎么做,在Thread类中有一个方法join( 阅读全文
posted @ 2021-09-06 13:01 小黑说Java 阅读(532) 评论(0) 推荐(1) 编辑
摘要: 并发编程之:AQS源码解析 大家好,我是小黑,一个在互联网苟且偷生的农民工。 在Java并发编程中,经常会用到锁,除了Synchronized这个JDK关键字以外,还有Lock接口下面的各种锁实现,如重入锁ReentrantLock,还有读写锁ReadWriteLock等,他们在实现锁的过程中都是依赖与AQS来完成核心的加解锁 阅读全文
posted @ 2021-09-04 20:13 小黑说Java 阅读(394) 评论(0) 推荐(0) 编辑
摘要: 并发编程之:线程池(一) 大家好,我是小黑,一个在互联网苟且偷生的农民工。 池化 线程池是在计算机开发中常见的一种池化技术,是为了提高资源的利用率,将一些资源重复利用,避免重复的构建来提高效率。类似字符串常量池,数据库连接池,HttpClient连接池等,都是用的池化技术。 线程池 在没有线程池概念之前,我们要使用线程必须先 阅读全文
posted @ 2021-09-03 23:07 小黑说Java 阅读(437) 评论(0) 推荐(0) 编辑
摘要: 大家好,我是小黑,一个在互联网苟且偷生的农民工。 在之前的文章中,为了保证在并发情况下多线程共享数据的线程安全,我们会使用synchronized关键字来修饰方法或者代码块,以及在生产者消费者模式中同样使用synchronized来保证生产者和消费者对于缓冲区的原子操作。 synchronized的 阅读全文
posted @ 2021-09-02 19:09 小黑说Java 阅读(428) 评论(0) 推荐(2) 编辑
摘要: 并发编程之:Atomic 大家好,我是小黑,一个在互联网苟且偷生的农民工。 在开始讲今天的内容之前,先问一个问题,使用int类型做加减操作是不是线程安全的呢?比如 i++ ,++i,i=i+1这样的操作在并发情况下是否会有问题? 我们通过运行代码来看一下。 public class AtomicDemo { public s 阅读全文
posted @ 2021-09-01 13:27 小黑说Java 阅读(653) 评论(0) 推荐(1) 编辑
摘要: 并发编程之:ThreadLocal 大家好,我是小黑,一个在互联网苟且偷生的农民工。 从前上一期【并发编程之:synchronized】 我们学到要保证在并发情况下对于共享资源的安全访问,就需要用到锁。 但是,加锁通常情况下会让运行效率降低,那有什么办法可以彻底避免对共享资源的竞争,同时又可以不影响效率呢?答案就是小黑今天要和大家讲的 阅读全文
posted @ 2021-08-31 13:21 小黑说Java 阅读(516) 评论(0) 推荐(1) 编辑
摘要: 并发编程之:synchronized 大家好,我是小黑,一个在互联网苟且偷生的农民工。 之前的文章中跟大家分享了关于Java中线程的一些概念和基本的使用方法,比如如何在Java中启动一个线程,生产者消费者模式等,以及如果要保证并发情况下多线程共享数据的访问安全,操作的原子性,使用到了synchronized关键字。今天主要和大家聊一聊s 阅读全文
posted @ 2021-08-30 11:27 小黑说Java 阅读(583) 评论(1) 推荐(0) 编辑
摘要: 并发编程之:JMM 大家好,我是小黑,一个在互联网苟且偷生的农民工。 上一期给大家分享了关于Java中线程相关的一些基础知识。在关于线程终止的例子中,第一个方法讲到要想终止一个线程,可以使用标志位的方法,我们再来回顾一下代码。 class MyRunnable implements Runnable { // vola 阅读全文
posted @ 2021-08-28 13:36 小黑说Java 阅读(591) 评论(0) 推荐(0) 编辑
摘要: 并发编程之:线程 大家好,我是小黑,一个在互联网苟且偷生的农民工。前段时间公司面试招人,发现好多小伙伴虽然已经有两三年的工作经验,但是对于一些Java基础的知识掌握的都不是很扎实,所以小黑决定开始跟大家分享一些Java基础相关的内容。首先这一期我们从Java的多线程开始。 好了,接下来进入正题,先来看看什么是进程和线 阅读全文
posted @ 2021-08-27 20:45 小黑说Java 阅读(361) 评论(1) 推荐(0) 编辑