记录一下基础概念并行:多个进程一起执行,比如说两队人在两个窗口打饭(想到了大学生活)并发并发和时间有关,脱离时间谈并发是不靠谱的。在单位时间内,多个线程一起执行,抢占cpu资源。比如说坐公交,以前都是你抢我夺,提前上车抢位置(现在好多了)Thread的创建方式只有两种,一种extend Thread ,另一种 implements Runnable;如下图所示,Thread源码中有说明
这些转载文章的叙述角度各不相同,不过不影响我们通过这些文章对并发集合有一个初步的理解。 一:集合 编程,离不开数据结构。 JDK提供了Java集合框架(Java Collections framework),它包括可以用来实现多种不同的数据结构的接口、类和算法,如HaspMap、ArrayList等 ...
转载 2021-10-12 19:49:00
131阅读
2评论
package thread;public class ThreadLocalDemo { //线程本地存储,不会被线程共享 private ThreadLocal<Integer> threadLocal = new ThreadLocal<Integer>(); private int a; private ThreadLocal<User> ...
原创 2021-06-02 11:31:31
339阅读
1、概述1、nio核心: Channels 管道 Buffers 缓冲区 Selectors 选择器 数据从缓冲区写进管道,或者从管道读取到缓冲区 Selector允许单线程处理多个 Channel,即一个线程对应一个Selector,而一个Selector对应多个Channels(向Selector注册Channel)2、buffer三大属性: ...
原创 2021-06-02 11:31:36
491阅读
面试系列——java并发一、使用线程有三种使用线程的方法:实现Runnable接口实现Callable接口继承Thread类实现 Runnable 和 Callable 接口的类只能当做一个可以在线程中运行的任务,不是真正意义上的线程,因此最后还需要通过 Thread 来调用。可以理解为任务是通过线程驱动从而执行的。实现Runnable接口public class MyRunnable imple
转载 2021-04-22 09:29:10
184阅读
2评论
学习完Java基础后,让我们开始踏上进阶之旅,一起感受Java并发编程的魅力。今天是第一篇内容——并发编程线程基础。本篇内容将介绍进程与线程的概念和区别、线程创建和运行的几种方式、线程通知与等待、线程常用方法、守护线程和用户线程、ThreadLocal的使用与原理等内容。01进程与线程进程是代码在数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,线程则是进程的一个执行路径,一个进程中至
原创 5月前
74阅读
今天学习Java第十五个专题——Java并发编程。01进程与线程进程是代码在数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位。线程是进程中的一个实体,一个进程中至少有一个线程,进程中的多个线程共享进程的资源。值得注意的是,CPU资源是分配给线程的,因为真正占用CPU运行的是线程,所以线程是CPU分配的基本单位。Java中,当我们启动main函数时其实就启动了一个JVM进程,而main函
原创 5月前
55阅读
由于临界区的存在,多线程之间的并发必须受到控制。根据控制并发的策略,我们可以把并发的级别分为阻塞、无饥饿、无障碍、无锁、无等待几种。阻塞一个线程是阻塞的,那么在其他线程释放资源之前,当前线程无法继续执行。当我们使用synchronized关键字或者重入锁时,我们得到的就是阻塞的线程。synchronize关键字和重入锁都试图在执行后续代码前,得到临界区的锁,如果得不到,线程就会被挂起等待,直到占有了所需资源为止。无饥饿(Starvation-Free)如果线程之间是有优先级的,那么线程调度的时候总
原创 2021-07-12 11:43:55
99阅读
由于临界区的存在,多线程之间的并发必须受到控制。根据控制并发的策略,我们可以把并发的级别分为阻塞、无饥饿、无障碍、无锁、无等待几种。阻塞一个线程是阻塞的,那么在其他线程释放资源之前,当前线程无法继续执行。当我们使用synchronized关键字或者重入锁时,我们得到的就是阻塞的线程。synchronize关键字和重入锁都试图在执行后续代码前,得到临界区的锁,如果得不到,线程就会被挂起等待,直到占有了所需资源为止。无饥饿(Starvation-Free)如果线程之间是有优先级的,那么线程调度的时候总
原创 2022-01-13 18:06:14
78阅读
场景引入你肯定遇到过这样的场景:你和你的女神正在约会,她说她想喝奶茶,你跑去奶茶店帮她买。回来发现,她正在跟一个帅哥聊天,手里还拿着未开封的奶茶。你站在原地不知所措……把你和那位帅哥当做并发的线程,女神当做你们需要争抢的资源,是不是就能明白多线程状态下对象值的不安全之处了?要是女神能在我处理完我的事之后再处理别人的事情,只对我专一,那该多好!于是,锁的概念就出现了。假设,女神只能同时接受一个舔狗的
原创 2022-09-20 09:08:14
100阅读
Java JUC并发系列一 本章将通过简单的介绍一下关于Lock接口Callable接口
原创 2023-06-06 23:04:33
50阅读
今天开始学习Java并发编程系列的第二篇内容——多线程并发编程进阶。本篇内容将介绍synchronized、volatile关键字、Unsafe类、锁、和伪共享等内容。01synchronized关键字Java中共享变量的内存可见性问题:Java 内存模型规定,将所有的变量都存放在主内存中,当线程使用变量时,会把主内存里面的变量复制到自己的工作空间或者叫作工作内存,线程读写变量时操作的是自己工作内
原创 5月前
86阅读
场景引入你肯定遇到过这样的场景:你和你的女神正在约会,她说她想喝奶茶,你跑去奶茶店帮她买。回来发现,她正在跟一个帅哥聊天,手里还拿着未开封的奶茶。你站在原地不知所措……把你和那位帅哥当做并发的线程,女神当做你们需要争抢的资源,是不是就能明白多线程状态下对象值的不安全之处了?要是女神能在我处理完我的事之后再处理别人的事情,只对我专一,那该多好!于是,锁的概念就出现了。假设,女神只能同时接受一个舔狗的
原创 2022-08-20 09:21:01
186阅读
Java JUC并发系列一 本章将通过简单的介绍一下关于Java并发编程的三大特性以及Volatile与Synchronized
原创 2023-06-05 23:43:19
68阅读
1、概述1、输入和输出 输入流可以理解为向内存输入,输出流可以理解为从内存输出2、典型的数据源(数据媒介) 文件 管道 网络连接 内存缓存 System.in, System.out, System.error 3、并发IO要注意的问题: 在同一时刻不能有多个线程同时从InputStream或者Reader中读取数据,也不能同时往OutputStream或者Writer里...
原创 2021-06-02 11:31:37
570阅读
从本章开始,我们正式进入Java多线程进阶篇的学习。初学者通过基础篇的学习,应该已经对多线程的初步使用有了基本概念和掌握。多线程这块知识的学习,真正的难点不在于多线程程序的逻辑有多复杂,而在于理清J.U.C包中各个多线程工具类之间的关系、特点及其使用场景(从整体到局部、高屋建瓴,这对学习任何知识都至关重要,如果读者能坚持阅读到本系列的Executors框架,你会明白我为什么强调全局视野的重要性)。
原创 精选 2023-02-20 16:24:53
165阅读
Java并发必知必会》系列: 1.反制面试官 | 14张原理图 | 再也不怕被问 volatile! 2.程序员深夜惨遭老婆鄙视,原因竟是CAS原理太简单? 3.用积木讲解ABA原理 | 老婆居然又听懂了! 4.全网最细 | 21张图带你领略集合的线程不安全 5.5000字 | 24张图带你彻底理
原创 2021-04-19 09:33:26
275阅读
juc 是 java.util.concurrent 的简称,为了支持高并发任务,在编程时可以有效减少竞争条件和死锁线程.juc 主要包含 5 大工具包工具包描述locks- R
原创 2024-04-17 12:12:37
67阅读
并行和并发都是多任务处理的概念,但它们的含义不同。并行是指两个或多个任务在同一时刻执行,即在同一时刻
原创 2024-04-17 13:42:49
67阅读
   java多线程与并发java
原创 2023-05-08 12:36:20
165阅读
  • 1
  • 2
  • 3
  • 4
  • 5