李锋镝的博客 - LiFengdi.Com

  • 首页
  • 时间轴
  • 留言
  • 左邻右舍
  • 我的日常
  • 关于我
多线程
技术

ThreadPoolExecutor如何实现线程复用及超时销毁

以下,基于JDK1.8。 1. 线程复用 我们知道Thread.start执行之后,线程就不能再次执行了,那ThreadPoolExecutor是如何做到线程复用的呢? 原理很简单,在实际执行的线程外部套一个Thread,外层Thread的run方法while循环执行实际执行线程的run方法,实现线程的复用并且执行之后不销毁。下面是伪代码: // 任务等待队列 BlockingQueue<Runnable> taskQueue = new LinkedBlockingQueue(); new Threa…

2021年6月18日 0条评论 11961点热度 3人点赞 阅读全文
技术

Java并发编程之如何保证线程顺序执行

背景 只要了解过多线程,我们就知道线程开始的顺序跟执行的顺序是不一样的。如果只是创建三个线程然后执行,最后的执行顺序是不可预期的。这是因为在创建完线程之后,线程执行的开始时间取决于CPU何时分配时间片,线程可以看成是相对于的主线程的一个异步操作。 public class FIFOThreadExample { public synchronized static void foo(String name) { System.out.print(name); } public static void main(St…

2021年5月18日 0条评论 12309点热度 0人点赞 阅读全文
技术

分布式、多线程、高并发概念与区别

当提起这三个词的时候,是不是很多人都认为分布式=高并发=多线程? 当面试官问到高并发系统可以采用哪些手段来解决,或者被问到分布式系统如何解决一致性的问题,是不是一脸懵逼? 确实,在一开始接触的时候,不少人都会将三者混淆,误以为所谓的分布式高并发的系统就是能同时供海量用户访问,而采用多线程手段不就是可以提供系统的并发能力吗? 实际上,他们三个总是相伴而生,但侧重点又有不同。 什么是分布式? 分布式更多的一个概念,是为了解决单个物理服务器容量和性能瓶颈问题而采用的优化手段。 该领域需要解决的问题极多,在不同的技术层面上…

2019年10月18日 0条评论 13352点热度 0人点赞 阅读全文
原创

JAVA之从线程安全说到锁

什么是线程安全? 线程安全是指保证多线程环境下共享的、可修改的状态的正确性。 线程安全需要保证几个基本特性 原子性:相关操作不会中途被其他线程干扰,一般通过同步机制实现。 可见性:一个线程修改了某个共享变量,其状态能够立即被其他线程知晓,通常被解释为将线程本地状态反映到主内存上,volatile就是负责保证可见性的。 有序性:保证线程内串行语义,避免指令重排。 大部分情况下,为了保证线程安全,就要用到锁,加上锁后,每次只允许一个线程运行这段代码,也就是每个时间只能有一个线程访问共享数据。这样就实现了线程安全。 JA…

2019年10月12日 0条评论 13522点热度 0人点赞 阅读全文
原创

JAVA关键字之volatile关键字说明

volatile作用 volatile主要是为了解决多线程内存不可见问题。 对于一写多读,是可以解决变量同步问题,但是如果多写,同样无法解决线程安全问题。 其次是为了保证代码的有序性。 虚拟机在编译的时候,是有可能把代码的顺序进行重排序的,不一定会按照我们写的代码的顺序来执行,对于有些代码进行重排序之后,虽然对变量的值没有造成影响,但有可能会出现线程安全问题的。 如果一个变量被声明volatile的话,那么这个变量不会被进行重排序,也就是说,虚拟机会保证这个变量之前的代码一定会比它先执行,而之后的代码一定会比它慢执…

2019年10月11日 0条评论 13700点热度 1人点赞 阅读全文
原创

JAVA线程池简析(JDK1.6)

序 为什么要用线程池?什么情况下才会用到线程池? 并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。 因此,就用到了线程池;线程池中的线程可以复用,就是执行完一个任务,并不被销毁,而是继续执行下一个任务。 如下使用线程: public class Test{ public static void main(String[] args) { long start = System.currentTimeMil…

2019年6月13日 0条评论 13676点热度 0人点赞 阅读全文
网站统计
  • 文章总数:304 篇
  • 评论总数:456 篇
  • 标签数量:226 个
  • 最后更新:2023年01月29日
  • 建站日期:2016年6月6日

醉后不知天在水,满船清梦压星河。

最新 热点 随机
最新 热点 随机
开工啦~ 今晚,回家过年! 图数据库选型:Neo4j、Janus、HugeGraph Redisson分布式锁的watch dog自动续期机制 哀莫大于心死 你好,2023
居家办公了~C# 11 的这个新特性,我愿称之最强!看病难~取药难~~RocketMQ的push消费方式实现详解国庆节过的也很累~~开工啦~
还不懂Redis?看完这个故事就明白了! SpringBoot基于redis的分布式锁的实现(源码) SonarQube Scanner的配置与使用简介 Java 序列化和反序列化为什么要实现 Serializable 接口? Java并发编程之如何保证线程顺序执行 新买的笔记本发货啦……
最近评论
dd 发布于 36 分钟前(02月06日) 请问idea2022 myBatiscodehelperpro 3.1.5激活码?
Frankie Bridge 发布于 8 小时前(02月06日) I really like your writing style..Its so easily un...
Frankie Bridge 发布于 2 天前(02月05日) Hi! Just wondering- what template did you use for ...
lyshark 发布于 3 周前(01月18日) 已添加贵站,申请交换友链:) name: LyShark - 孤风洗剑 link: https:...
poetry 发布于 1 个月前(01月05日) 感谢分享
友情链接
  • 志文工作室
  • 临窗旋墨
  • 旧时繁华
  • 城南旧事
  • 强仔博客
  • 林三随笔
  • 徐艺扬的博客
  • 云辰博客
  • 韩小韩博客
  • 知向前端
  • 阿誉的博客
  • 林羽凡
  • 情侣头像
  • 周良博客
  • 马内
  • 哥斯拉
  • LyShark - 孤风洗剑
标签云

Your browser doesn't support the HTML5 CANVAS tag.

  • 散文
  • Zookeeper
  • SEO
  • Eclipse
  • 微服务
  • docker
  • 妹妹的画
  • 设计模式
  • 博客
  • Spring Cloud
  • 架构
  • IDEA
  • Linux
  • 分布式锁
  • MQ
  • 重构
  • 锁
  • JAVA
  • ElasticSearch
  • 程序人生
  • Spring
  • K8s
  • JVM
  • 文档
  • 领域模型
  • 数据库
  • https
  • 搜索
  • SpringBoot
  • 面试
  • 高并发
  • 分布式
  • 文学
  • 面向对象
  • Redis
  • SQL
  • MySQL
  • Git
  • Excel
  • 日常
  • 程序员
  • RocketMQ
  • Spring Cloud Gateway
  • 教程
  • Visual Studio
  • 多线程
  • Xshell
  • Python
  • UML
  • hbase

COPYRIGHT © 2022 lifengdi.com. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

豫ICP备16004681号-2