多线程
文章平均质量分 54
多线程笔记
徐卖狼
主要还是因为懒
展开
-
多线程 - 什么是线程?
什么时线程?我们在进行多线程学习活着在面试的过程中,是否有自习的想过这个概念 – 什么时线程?百度百科的介绍是这样的;简单的总结来说:线程与进程相似,但是线程是一个比进程更小的执行单位,一个进程在其执行的过程中可以产生多个线程,与进程不同的是同类的多个线程共享进程的堆和方法区的资源,但是每个线程有自己的程序计数器,虚拟机栈和本地方法栈,系统在产生一个线程或者在各个程序间切换工作时,负担要比进程小的多,也正因为如此,线程也被称为轻量级进程获取线程状态所以我们可以更具JMX来看下一个普通Jav原创 2022-02-12 16:23:36 · 325 阅读 · 0 评论 -
CyclicBarrier 实现实现同一时间 并发请求
接上一篇文章,为了实现同一时间模拟用户请求,这里还有一个方式实现这个功能 CyclicBarrier,也是提供一个等待所有线程达到某一个点后,再一起开始某个动作,效果一致,不过这个开关的目的确实比较纯粹,就是等待所有线程到达,而前面说的闭锁 CountDownLatch 虽然实现的也是所有线程到达后再开始,但是他的触发点其实是 最后那一个开关,所以侧重点是不一样的。简单看一下这个开关是如何实现真正同时并发呢?示例如下package com.itcorey.interview.thread;impor原创 2020-08-21 11:22:58 · 322 阅读 · 0 评论 -
利用 Java 闭锁:CountDownLatch 实现同时并发请求操作
文章目录需求代码有时需要测试一下某个功能的并发性能,又不要想借助于其他工具,java中模拟并发请求很方便,但是线程一般情况下存在先后顺序,这样的话就不能成为同时并发,所以利用CountDownLatch刚好就用来做这种事就最合适了需求开启n个线程,加一个闭锁,开启所有线程;待所有线程都准备好后,按下开启按钮,就可以真正的发起并发请求了。代码模拟请求工具类:package com.itcorey.interview.utils;import java.io.*;import java.原创 2020-08-21 10:53:35 · 451 阅读 · 0 评论 -
测试串行和并发执行速度
并发的目的是为了让程序运行的更快,但是,并不是启动更多的线程就能让程序最大限度的并发执行,下面这个例子就是证明并发一定快吗?package com.itcorey.Thread;import java.io.Serializable;/** * @Classname concurrentTest * @Description 多线程一定快吗? * @Date 2020/5/21 18:32 * @Created by corey */public class concurrentTes原创 2020-05-21 19:03:59 · 380 阅读 · 0 评论 -
一次threadlocal的源码分析思路
一:什么是threadlocal?首先看下jdk里面的解释(来自于百度翻译)简单的总结就是:ThreadLocal提供了线程的本地变量,他可以保证访问到的变量属于当前线程,每个线程都保存有一个变量的副本,每一个线程的变量都不同,ThreadLocal提供了一种线程的隔离,将变量与线程绑定.ThreadLocal通过threadLocalHashCode来标识每一个thre...原创 2020-04-13 20:26:52 · 144 阅读 · 0 评论 -
什么是线程?什么是进程?
1.进程进程是指在系统中正在运行的一个应用程序,程序一旦运行就是进程,进程是系统资源分配的独立实体,且每个进程都有独立的地址空间一个进程可以拥有多个线程,每个线程使用其所属进程的栈空间进程之间的通信: ipc(管道,信号量,共享内存,消息队列) 2.线程线程是进程的一个实体,是进程的一条执行路径线程是cpu独立运行和独立调度的基本单位!线程之间的通信 线程...转载 2019-01-25 00:48:04 · 267 阅读 · 0 评论 -
synchronized与Lock的区别用法!
提到锁,首先要明确一个概念:1.线程与进程? 一个简单的程序,最少需要一个进程而一个进程最少需要线程,所以关系是线程-->进程-->程序的大致构成结构,所以线程是执行程序的最下单元,而进程是系统进行资源分配和调度的独立单元,所以以下是我们讨论的都是建立在线程的基础上2.Thread的几个重要方法? a.start()方法,调用该方法开始执行线程 b.sto...转载 2019-04-09 00:08:46 · 295 阅读 · 0 评论