随笔 - 832  文章 - 2  评论 - 31  阅读 - 167万

随笔分类 -  多线程

java 用户线程和守护线程
摘要:java 用户线程和守护线程 在Java中通常有两种线程:用户线程和守护线程(也被称为服务线程)通过Thread.setDaemon(false)设置为用户线程通过Thread.setDaemon(true)设置为守护线程线程属性的设置要在线程启动之前,否则会报IllegalThreadStateE 阅读全文
posted @ 2021-08-05 15:09 小破孩楼主 阅读(215) 评论(0) 推荐(0) 编辑
多线程 ForkJoinPool
摘要:背景:ForkJoinPool的优势在于,可以充分利用多cpu,多核cpu的优势,把一个任务拆分成多个“小任务”,把多个“小任务”放到多个处理器核心上并行执行;当多个“小任务”执行完成之后,再将这些执行结果合并起来即可。这种思想值得学习。 Java7 提供了ForkJoinPool来支持将一个任务拆 阅读全文
posted @ 2021-06-11 16:11 小破孩楼主 阅读(196) 评论(0) 推荐(0) 编辑
延迟队列DelayQueue简单入门
摘要:参考:DelayQueue(1) DelayQueue实现原理及应用场景分析 一、DelayQueue是什么 DelayQueue是一个无界的BlockingQueue,用于放置实现了Delayed接口的对象,其中的对象只能在其到期时才能从队列中取走。这种队列是有序的,即队头对象的延迟到期时间最长。 阅读全文
posted @ 2021-05-25 11:27 小破孩楼主 阅读(502) 评论(0) 推荐(0) 编辑
Java并发编程之synchronized详解(锁优化、锁升级)
摘要:1 线程安全 1.1 什么是线程安全问题 “线程安全”相信稍有经验的程序员都会听说过,但是如何描述线程安全呢?在网上查到以下两点比较符合线程安全的定义: 如果一个对象可以安全地被多个线程同时使用,那它就是线程安全的 当多个线程访问同一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不 阅读全文
posted @ 2021-02-21 21:19 小破孩楼主 阅读(311) 评论(1) 推荐(0) 编辑
大端模式和小端模式
摘要:一、大端与小端、MSB与LSB 在嵌入式开发中,大端(Big-endian)和小端(Little-endian)是一个很重要的概念。假如现有一32位int型数0x12345678,那么其MSB(Most Significant Byte,最高有效字节)为0x12,其LSB (Least Signif 阅读全文
posted @ 2021-02-18 21:24 小破孩楼主 阅读(730) 评论(0) 推荐(0) 编辑
java并发队列
摘要:在并发队列上JDK提供了两套实现,一个是以ConcurrentLinkedQueue为代表的非阻塞高性能队列,一个是以BlockingQueue接口为代表的阻塞队列,无论哪种都继承自Queue。 阻塞队列与非阻塞队 阻塞队列与普通队列的区别在于,当队列是空的时,从队列中获取元素的操作将会被阻塞,或者 阅读全文
posted @ 2020-12-14 22:44 小破孩楼主 阅读(318) 评论(0) 推荐(0) 编辑
CompletionService和ExecutorCompletionService详解
摘要:本文主要讲解线程池的完成服务: CompletionService接口定义了一组任务管理接口: 1.submit() - 提交任务; 2.take() - 获取任务结果; 3.poll() - 获取任务结果 ExecutorCompletionService类是CompletionService接口 阅读全文
posted @ 2020-12-05 15:57 小破孩楼主 阅读(406) 评论(0) 推荐(0) 编辑
ThreadLocal
摘要:在JDK 1.2的版本中就提供java.lang.ThreadLocal,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路。使用这个工具类可以很简洁地编写出优美的多线程程序。 ThreadLocal并不是一个Thread,而是Thread的局部变量,也许把它命名为ThreadLoc 阅读全文
posted @ 2020-10-03 23:10 小破孩楼主 阅读(117) 评论(0) 推荐(0) 编辑
Java并发编程:Callable、Future和FutureTask
摘要:Java并发编程:Callable、Future和FutureTask 在前面的文章中我们讲述了创建线程的2种方式,一种是直接继承Thread,另外一种就是实现Runnable接口。 这2种方式都有一个缺陷就是:在执行完任务之后无法获取执行结果。 如果需要获取执行结果,就必须通过共享变量或者使用线程 阅读全文
posted @ 2020-06-30 23:36 小破孩楼主 阅读(143) 评论(0) 推荐(0) 编辑
java多线程--Callable、Future
摘要:Java 实现多线程的二种方式: 方式一:继承Thread类 方式二:实现Runnable接口 示例代码如下: // 方式一:继承Thread类 Thread thread01 = new Thread() { @Override public void run() { System.out.pri 阅读全文
posted @ 2020-06-30 22:50 小破孩楼主 阅读(240) 评论(0) 推荐(0) 编辑
ThreadPoolTaskExecutor和ThreadPoolExecutor
摘要:1、ThreadPoolExecutor 线程池接口:ExecutorService为线程池接口,提供了线程池生命周期方法,继承自Executor接口,ThreadPoolExecutor为线程池实现类,提供了线程池的维护操作等相关方法,继承自AbstractExecutorService,Abst 阅读全文
posted @ 2020-06-29 11:12 小破孩楼主 阅读(2700) 评论(0) 推荐(0) 编辑
Semaphore (参考资料,还没细看)
摘要:Semaphore是一种基于计数的信号量。它可以设定一个阈值,基于此,多个线程竞争获取许可信号,做自己的申请后归还,超过阈值后,线程申请许可信号将会被阻塞。Semaphore可以用来构建一些对象池,资源池之类的,比如数据库连接池,我们也可以创建计数为1的Semaphore,将其作为一种类似互斥锁的机 阅读全文
posted @ 2020-06-20 16:37 小破孩楼主 阅读(168) 评论(0) 推荐(0) 编辑
CyclicBarrier 使用详解
摘要:1. CyclicBarrier 是什么? 从字面上的意思可以知道,这个类的中文意思是“循环栅栏”。大概的意思就是一个可循环利用的屏障。 它的作用就是会让所有线程都等待完成后才会继续下一步行动。 举个例子,就像生活中我们会约朋友们到某个餐厅一起吃饭,有些朋友可能会早到,有些朋友可能会晚到,但是这个餐 阅读全文
posted @ 2020-06-20 10:22 小破孩楼主 阅读(334) 评论(0) 推荐(0) 编辑
countDownLatch
摘要:1.背景: countDownLatch是在java1.5被引入,跟它一起被引入的工具类还有CyclicBarrier、Semaphore、concurrentHashMap和BlockingQueue。 存在于java.util.cucurrent包下。 2.概念 countDownLatch这个 阅读全文
posted @ 2020-06-20 09:24 小破孩楼主 阅读(208) 评论(0) 推荐(0) 编辑
合理配置线程池
摘要:要想合理的配置线程池,就必须首先分析任务特性,可以从以下几个角度来进行分析: 任务的性质:CPU密集型任务,IO密集型任务和混合型任务。 任务的优先级:高,中和低。 任务的执行时间:长,中和短。 任务的依赖性:是否依赖其他系统资源,如数据库连接。 任务性质不同的任务可以用不同规模的线程池分开处理。C 阅读全文
posted @ 2020-06-15 20:35 小破孩楼主 阅读(221) 评论(0) 推荐(0) 编辑
什么是CPU密集型、IO密集型
摘要:CPU密集型(CPU-bound)CPU密集型也叫计算密集型,指的是系统的硬盘、内存性能相对CPU要好很多,此时,系统运作大部分的状况是CPU Loading 100%,CPU要读/写I/O(硬盘/内存),I/O在很短的时间就可以完成,而CPU还有许多运算要处理,CPU Loading很高。 在多重 阅读全文
posted @ 2020-06-15 20:17 小破孩楼主 阅读(413) 评论(0) 推荐(0) 编辑
匿名内部实现多线程的两种方式创建
摘要:匿名内部实现多线程的两种方式创建: 使用匿名内部类用第一种方式即继承Thread类重写run方法: 运行结果: 使用匿名内部类用第二种方式即实现Runnable接口调用父类Thread的构造方法开启线程: 其中,new Thread(r).start使用的是匿名对象的方式直接调用start方法开启线 阅读全文
posted @ 2020-06-08 22:30 小破孩楼主 阅读(332) 评论(0) 推荐(0) 编辑

< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8

点击右上角即可分享
微信分享提示