多线程-并发
文章平均质量分 79
多线程-并发
veminhe
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
学习使用线程池
,现在进一步学习学习。原创 2024-08-22 14:08:42 · 879 阅读 · 0 评论 -
java多线程(五)线程间通信
线程间通信是并发编程中的一个重要概念,它允许多个线程之间交换信息或共享数据。原创 2024-08-22 15:00:37 · 626 阅读 · 0 评论 -
Java多线程(一)Thread、Runnable、Callable、Future、ExecutorService接口
Java通过提供一系列的类和接口来支持多线程编程,主要包括Thread类、Runnable接口、Callable接口、Future接口以及ExecutorService接口等。在Java中,多线程编程是一项非常重要的技能,它允许程序同时执行多个任务,从而提高程序的执行效率和响应速度。: 提交一个Callable任务用于执行,并返回一个表示该任务等待完成的Future。: 尝试停止所有正在执行的任务,停止处理正在等待的任务,并返回等待执行的任务列表。可能由于新任务的到达而在线程池的任何线程中异步执行。转载 2024-08-22 15:23:32 · 957 阅读 · 0 评论 -
Java多线程(二) - Java对象结构与对象锁的升级
如果持有锁的线程能在很短时间内释放锁,那么等待的线程就可以立即获得锁,从而避免了线程阻塞和唤醒的开销。:如果轻量级锁自旋尝试获取锁失败,或者持有锁的线程执行时间较长,超过了自旋等待的最大时间,那么轻量级锁会膨胀为重量级锁。通过引入偏向锁和轻量级锁,JVM 能够在多线程竞争不激烈的情况下,以较低的开销实现同步,从而提高程序的性能。其中,对象头是一个非常关键的部分,因为它包含了对象运行时的关键信息,如锁状态、哈希码等。,Java 对象锁的升级是为了提高多线程同步的效率,减少锁的获取和释放的开销。转载 2024-08-22 15:39:52 · 616 阅读 · 0 评论 -
java多线程(三)重排序与Happens-Before
定义:重排序是指编译器和处理器为了提高程序执行效率,在不改变单线程程序执行结果的前提下,对指令执行顺序进行重新排列的一种优化手段。重排序可以发生在编译器优化阶段,也可以发生在处理器执行指令阶段。含义编译器优化的重排序:编译器在将高级语言代码转换成机器代码时,会进行各种优化,包括指令调度,即根据数据依赖关系分析哪些指令可以互换顺序而不影响最终执行结果。指令级并行的重排序:现代处理器普遍采用指令级并行技术(ILP),允许多条无数据依赖性的指令同时执行,这实际上也是一种重排序。内存系统的重排序。原创 2024-08-22 16:53:56 · 611 阅读 · 0 评论 -
Java多线程(四):线程与线程组
Java多线程编程是构建高效、响应迅速的应用程序的关键技术。通过合理利用线程与线程组,以及掌握同步与互斥锁的机制,开发者可以在实际项目中充分发挥多线程的优势,提升程序的性能和用户体验。原创 2024-08-22 17:11:43 · 410 阅读 · 0 评论 -
java多线程(六)关键字Volatile可见性、有序性以及单个变量的原子性
Volatile是Java多线程编程中的一个重要关键字,它确保了变量的可见性、有序性和部分原子性。正确使用volatile关键字可以避免多线程中的一些问题,如数据不一致和指令重排序等。然而,需要注意的是,volatile并不能保证复合操作的原子性,对于这类操作,需要使用synchronized或原子类来保证线程安全。原创 2024-08-22 18:16:52 · 870 阅读 · 0 评论 -
java多线程(七)AQS(AbstractQueuedSynchronizer)技术解析:以赛跑起跑场景为例
AQS作为一个通用的同步框架,为Java并发编程提供了极大的便利。通过继承AQS并重写相应的方法,开发者可以轻松地实现自定义的同步逻辑,而无需深入了解底层的同步机制。这使得Java并发编程变得更加简单、高效。此外,AQS还提供了丰富的同步特性,如可重入性、可中断性、超时等,这些特性使得基于AQS实现的同步工具更加灵活、强大。原创 2024-08-22 18:50:53 · 724 阅读 · 0 评论 -
java多线程(八)深入解析Java中的synchronized关键字:用法、原理与最佳实践
待补充。原创 2024-08-22 18:55:39 · 352 阅读 · 0 评论 -
创建线程安全的单例
参考https://blog.youkuaiyun.com/cselmu9/article/details/51366946原创 2019-05-06 20:49:03 · 146 阅读 · 1 评论 -
学习多线程
线程池中线程就是通过ThreadPoolExecutor中的ThreadFactory,线程工厂创建的。那么通过自定义ThreadFactory,可以按需要对线程池中创建的线程进行一些特殊的设置,如命名、优先级等,下面代码我们通过ThreadFactory对线程池中创建的线程进行记录与命名。原创 2023-07-04 18:26:03 · 334 阅读 · 0 评论
分享