目录概念介绍测试环境开始测试测试【单进程单线程】测试【多进程 并行】测试【多线程 并发】测试【协程 + 异步】结果对比绘图展示概念介绍首先简单介绍几个概念: 进程和线程进程就是一个程序在一个数据集上的一次动态执行过程(数据集是程序在执行过程中所需要使用的资源)。线程也叫轻量级进程,它是一个基本的 C ...
分类:
编程语言 时间:
2019-12-05 13:02:04
阅读次数:
100
多线程 并发与并行、进程,线程调度自行百度 线程(thread):是一个进程中的其中一条执行路径,CPU调度的最基本调度的单位。同一个进程中线程可以共享一些内存(堆、方法区),每一个线程又有自己的独立空间(栈、程序计数器)。因为线程之间有共享的内存,在实现数据共享方面,比较方便,但是又因为共享数据的 ...
分类:
编程语言 时间:
2019-12-02 18:55:53
阅读次数:
69
JMM与问题引入 为啥先说JMM,因为CAS的实现类中维护的变量都被volatile修饰, 这个volatile 是遵循JMM规范(不是百分百遵循,下文会说)实现的保证多线程并发访问某个变量实现线程安全的手段 一连串的知识点慢慢缕 首先说什么是JMM, JMM就是大家所说的java的内存模型, 它是 ...
分类:
编程语言 时间:
2019-11-27 00:27:50
阅读次数:
60
JUC是java.util.concurrent的缩写,java.util.concurrent是在并发编程中使用的工具类。 在以前的解决并发问题,一般是通过Synchronize关键字,现在可以通过juc下的工具类,来解决多线程并发问题。 首先写有个demo:使用synchronized进行上锁 ...
分类:
编程语言 时间:
2019-11-23 23:39:36
阅读次数:
97
1. synchronized使用 1.1 synchronized介绍 在多线程并发编程中synchronized一直是元老级角色,很多人都会称呼它为重量级锁。但是,随着Java SE 1.6对synchronized进行了各种优化之后,有些情况下它就并不那么重了。 synchronized可以修 ...
分类:
其他好文 时间:
2019-11-21 17:09:18
阅读次数:
62
public class ThreadCommunication { /** * 三个线程a、b、c并发运行,b,c需要a线程的数据怎么实现 * * 根据问题的描述,通过三个线程,ThreadA ThreadB ThreadC * ThreadA用于初始化数据num,只有num初始化完成之后再让Th ...
分类:
编程语言 时间:
2019-11-20 21:48:13
阅读次数:
117
线程安全问题? 当多个线程共享同一个全局变量,做写的操作时,可能会受到其他线程的干扰。读不会发生线程安全问题。 -- Java内存模型。 非静态同步方法使用什么锁? this锁 静态同步方法使用什么锁? 当前类的字节码文件 什么是ThreadLocal? ThreadLocal是给每个线程提供局部变 ...
分类:
编程语言 时间:
2019-11-19 11:47:47
阅读次数:
85
不考虑多线程并发的情况下,容器类一般使用ArrayList、HashMap等线程不安全的类,效率更高。在并发场景下,常会用到ConcurrentHashMap、ArrayBlockingQueue等线程安全的容器类,虽然牺牲了一些效率,但却得到了安全。 ...
分类:
编程语言 时间:
2019-11-18 20:38:22
阅读次数:
82
深入比较TheadLocal模式与synchronized关键字 ThreadLocal模式synchronized关键字都用于处理多线程并发访问变量的问题,只是二者处理问题的角度和思路不同。 1)ThreadLocal是一个java类,通过对当前线程中的局部变量的操作来解决不同线程的变量访问的冲突 ...
分类:
其他好文 时间:
2019-11-16 12:26:09
阅读次数:
55
测试计划中包含两个线程组,分别设置如下: 线程组1:线程数为2,循环次数为4 线程组2:线程数为4 执行顺序 监听器View Results in Table(用表格查看结果)中,ThreadName列,n-m,其中n指线程组号,m指线程号例如:1-1,指第一个线程组中的第一个线程 1-2,指第一个 ...
分类:
编程语言 时间:
2019-11-13 13:24:31
阅读次数:
204