
Java-线程
文章平均质量分 69
线程相关的知识
lovoo
不要抱怨生活,只因你还不够努力!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
CompletableFuture 异步编排如何使用?
在做提交订单功能时,我们需要处理的事务很多,如:修改库存、计算优惠促销信息、会员积分加减、线上支付、金额计算、生成产品订单、生成财务信息、删除购物车等等。如果这些功能全部串行化处理,会发费很长的时间,特别是在大量数据并发的时候,有可能导致服务器崩溃等各种异常。CompletableFuture 异步编排的出现,完全解决了上面的情况,这些功能基本可以并行处理。那么什么是CompletableFuture 异步编排?原创 2023-05-25 11:04:24 · 907 阅读 · 0 评论 -
CountDownLatch是什么?如何使用?
CountDownLatch(计数器)是一个用于多线程同步的 Java 工具。它允许一个或多个线程等待,直到其他线程完成任务或是事件的发生。CountDownLatch 通常用于协调多个线程之间的同步,以便一个线程等待另一个线程完成某项任务后再继续执行。CountDownLatch 本质上是一个计数器,用于记录需要等待的线程数量。当一个线程完成任务时,它会通知 CountDownLatch 计数器减一。当计数器的值减为零时,等待的线程将被释放,可以继续执行下面的任务。原创 2023-05-24 21:30:44 · 306 阅读 · 0 评论 -
什么是异步,什么是线程池,如何使用?
在 Java 中,异步是一种编程模型,它允许程序在执行某个操作时,不必等待该操作完成然后再去执行其他操作。这种方式可以提高程序的性能和响应速度。在 Java 中,异步一般是通过线程池来实现的。线程池是一种管理和复用线程的机制,它可以在程序启动时创建一定数量的线程,并把这些线程放到一个池子里面,等待任务的到来。当任务到来时,线程池会从池子里面取出一个线程来执行任务。当任务执行完毕后,线程会被放回到池子里面,等待下一个任务的到来。线程池可以避免频繁地创建和销毁线程,从而提高程序的性能。原创 2023-05-24 11:44:36 · 2670 阅读 · 0 评论 -
Java面试题2023:线程的有几种状态,你能写出来吗
网上对线程的状态描述的有很多,有5种的、6种的、7种的,其实这些说发从提出者的角度看,都是可以接受的,但我们如果看Thread源码里的代码时,原创 2023-04-27 09:02:23 · 135 阅读 · 0 评论 -
面试题2023:Java线程的实现方式
这是一道频率出现比较高的面试题,像阿里、腾讯、京东的Java初中级工程师面试题都出现过、面试过了薪水也能拿个10K~20K,所以掌握这些基础的知识还是有必要的。上面四种方法,本质上都是实现了Runnable的方法。原创 2023-04-26 10:42:16 · 488 阅读 · 0 评论 -
Java线程与线程池ThreadPoolExecutor,Executors解析
https://blog.csdn.net/tony_java_2017/article/details/81275908原创 2021-07-03 11:36:25 · 100 阅读 · 0 评论 -
JAVA线程安全与非线程安全区别
前言线程安全就是在多线程环境下也不会出现数据不一致,而非线程安全就有可能出现数据不一致的情况。线程安全由于要确保数据的一致性,所以对资源的读写进行了控制,换句话说增加了系统开销。所以在单线程环境中效率比非线程安全的效率要低些,但是如果线程间数据相关,需要保证读写顺序,用线程安全模式线程安全就是多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问直到该线程读取完,其他线程才可使用。不会出现数据不一致或者数据污染。线程不安全就是不提供数据访问保护,有可能出现多个线原创 2021-05-31 14:06:42 · 367 阅读 · 0 评论 -
java架构师项目实战,高并发集群分布式,大数据高可用视频教程
—————————————————————————————————————————————————–java架构师项目实战,高并发集群分布式,大数据高可用视频教程,共760G下载地址:https://item.taobao.com/item.htm?id=55588852620101.高级架构师四十二个阶段高 02.Java高级系统培训架构课程148课时 03.Java高级互联网架构师课程 0原创 2017-09-12 14:51:59 · 2195 阅读 · 2 评论 -
java架构师项目实战(Nginx、SOA、storm、Solr大数据高可用,SpringBoot等)视频教程
—————————————————————————————————————————————————–java架构师项目实战,高并发集群分布式,大数据高可用视频教程,共760G下载地址:https://item.taobao.com/item.htm?id=55588852620101.高级架构师四十二个阶段高 02.Java高级系统培训架构课程148课时 03.Java高级互联网架构师课程 0原创 2017-09-13 23:01:00 · 1135 阅读 · 0 评论 -
Java 关于强引用,软引用,弱引用和虚引用的区别与用法
一、概述:众所周知,Java中是JVM负责内存的分配和回收,这是它的优点(使用方便,程序不用再像使用c那样操心内存),但同时也是它的缺点(不够灵活)。为了解决内存操作不灵活这个问题,可以采用软引用等方法。 在JDK1.2以前的版本中,当一个对象不被任何变量引用,那么程序就无法再使用这个对象。也就是说,只有对象处于可触及状态,程序才能使用它。这 就像在日常生活中,从商店购买了某样物品后,如果有用,就原创 2016-06-08 21:17:40 · 13142 阅读 · 1 评论 -
Java线程池使用说明
一简介 线程的使用在java中占有极其重要的地位,在jdk1.4极其之前的jdk版本中,关于线程池的使用是极其简陋的。在jdk1.5之后这一情况有了很大的改观。Jdk1.5之后加入了java.util.concurrent包,这个包中主要介绍java中线程以及线程池的使用。为我们在开发中处理线程的问题提供了非常大的帮助。 二:线程池 线程池的作用: 线程池作用就是限制系统中执行线程的数量。转载 2016-05-11 15:32:55 · 849 阅读 · 0 评论 -
Android 自定义线程池
一、概述:1、因为线程池是固定不变的,所以使用了单例模式 2、定义了两个线程池,长的与短的,分别用于不同的地方。因为使用了单例模式,所以定义两个。 3、定义了两个方法,执行的与取消的二、代码:/** * @描述 线程管理池 * @项目名称 App_Shop * @包名 com.android.shop.manager * @类名 T原创 2016-06-19 21:03:22 · 1571 阅读 · 0 评论 -
Java 六种异常处理的陋习
你觉得自己是一个Java专家吗?是否肯定自己已经全面掌握了Java的异常处理机制?在下面这段代码中,你能够迅速找出异常处理的六个问题吗? OutputStreamWriter out = ... java.sql.Connection conn = ... try { // ⑸ Statement stat = conn.createStatement(); ResultSet原创 2016-06-12 13:47:57 · 508 阅读 · 0 评论 -
Java 自定义 线程池与任务队列
说明: 1)使用了队列的先进先出思想 2)在执行的时候添加线程 3)在ThreadQueue 里实现从队列里取出线程/** * * @Project JavaDemos * @Package com.java.thread * @author chenlin * @version 1.0 * @Date 2011年6月12日 */publ原创 2016-06-12 11:23:58 · 1743 阅读 · 0 评论 -
Java reflect反射简单示例
package com.java.basic.reflect;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;/** * @描述 TODO * @项目名称 Javas * @包名 com.java.basic.reflect * @原创 2016-06-09 08:46:54 · 443 阅读 · 0 评论 -
Java AtomicBoolean使用
使用 AtomicBoolean 高效并发处理 “只初始化一次” 的功能要求:private static AtomicBoolean initialized = new AtomicBoolean(false);public void init(){ if( initialized.compareAndSet(false, true) ) { // 这里放置初始化代码..原创 2016-06-07 15:19:44 · 967 阅读 · 0 评论