
多线程
主要整理JAVA多线程相关知识
吃饭睡觉胖胖胖
没有感情的码字机器
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
JAVA 无锁队列/栈
概述在多线程应用场景下,一般需要在代码中实现 加锁/解锁 操作来确保线程安全。在某些情况下,锁的处理会给程序带了很大的性能影响。在这种情况下, 我们就考虑无锁操作即在不加锁的情况下,依旧能保证线程的安全执行。JAVA 无锁队列/栈 的实现本篇就以下三个模块展开讨论:无锁的原理无锁队列的实现及测试无锁栈的实现及测试1、无锁的原理无锁的实现原理是 “CAP”(Campare and swap)。翻译过来即“比较和交换”。关于 CAP 的实现原理本篇我们不详细展开论述,在后面的文章专门介原创 2020-05-29 23:11:47 · 1397 阅读 · 0 评论 -
8、java 线程模型
概述前面几篇博客我系统的整理了 java 线程类 Thread 的使用、状态及并发安全性问题。本篇博客我打算简单的介绍一下 java 线程和操作系统线程之间的关联,以及 java 线程如何被调度。java 线程模型本篇博客我打算分以下几个模块展开:线程和进程线程模型1、进程和线程线程和进程的概念常常在操作系统中被提到,一般它们都是这样被定义的:进程是操作系统分配资源的基本单位线程是 CPU 调度的基本单位早期的操作系统中只有进程的概念,CPU 通过直接调用进程完成任务。任务的原创 2020-06-24 17:20:08 · 332 阅读 · 0 评论 -
7、java 对象和线程安全性问题
概述前面几篇博客我们介绍了 java 代码中如何创建并启动线程。而多线程在提高效率的同时也带来了线程安全性问题,本篇博客我们主要整理一下java对象和线程安全性问题的关系。Java对象与线程安全本篇博客从以下四个模块展开:线程安全问题产生的原因线程安全与全局变量线程安全与局部变量线程安全与其他资源1、线程安全问题产生的原因之前的多线程博客中我们提到:如果存在多个线程同时写一块内存空间,就可能产生线程安全问题。对应到 java 代码中,也就是说:如果存在多个线程同时写某个对象值,就可原创 2020-06-08 20:43:57 · 1649 阅读 · 0 评论 -
6、Java 线程状态切换图
概述上一篇博客我整理了 Java 线程常用的方法,其中提到 getState() 方法可以获取线程的状态。本篇博客主要通过流程图的方式整理线程状态的转换方式:线程状态切换图本篇博客主要从以下两个模块展开:Java 线程状态状态转换图1、Java 线程状态Java Thread 源码中,线程状态通过枚举类 State 表示,其中线程状态主要有以下六种:NEW:刚刚创建,还没有启动的线程。即 new 出来的 Thread 对象RUNNABLE:正在运行的线程,即使CPU没有调度原创 2020-06-06 22:13:22 · 191 阅读 · 0 评论 -
5、Java 线程类常用方法
概述线程在运行过程中可以通过调用方法来修改状态和属性。本篇我们主要介绍 Java 线程常见的方法Java 线程常见方法本篇我打算从以下三种类型出发,依次介绍常见的线程方法:实例方法静态方法Object() 继承方法1、实例方法2、静态方法Java 线程类常见的静态方法有以下这些:currentThread()yield()sleep()2-1、currentThread()public static native Thread currentThread();原创 2020-06-06 13:31:10 · 535 阅读 · 0 评论 -
4、Java 创建线程
概述前面几篇博客主要从宏观角度上介绍了多线程有关的知识。本篇从实际应用角度介绍在JAVA代码中如何创建并启动线程。Java 创建线程本篇主要从以下三个模块介绍:JAVA 创建线程的三种方式在实际应用中如何选择run() 方法和 start() 方法1、 JAVA 创建线程的三种方式在JAVA代码中有以下创建线程的方式:继承 Thread 类实现 Runnable 接口实现 Callable 接口1-1、继承 Thread 类线程在JAVA代码中通过Thread类封装,原创 2020-05-31 23:16:05 · 210 阅读 · 0 评论 -
3、并发模型
概述在实际的并发系统中,根据不同的业务场景一般使用不同的并发处理手段,这些不同的手段我们就称之为并发模型。不同的并发模型采用不同的方式拆分任务,同时这些并发线程间的交互方式也大不相同。本篇我们就介绍常见的几个并发模型:并发模型本篇我们主要分以下三个模块展开:并发模型和分布式系统的相似点:常见的三种并发模型常见并发模型的比较、1、并发模型和分布式系统的关系我们知道在分布式系统中,各个系统之间通过各种方式交互来实现业务目标。其中每个系统我们可以看做是一个单独的进程,那么分布式系统也就可以原创 2020-05-31 17:32:18 · 547 阅读 · 0 评论 -
2、多线程的优势和缺陷
概述由于单线程本身的缺陷,目前绝大多数系统采用多线程的方式运行。虽然多线程提高了系统资源利用率,但同时也给系统带来了线程安全性问题。本篇就多线程的优势和缺陷系统的整理一下,在以后的开发过程中,根据不同的业务场景使用不同的线程模型,以达到更好的效果。多线程的优势和缺陷本篇就多线程的优势和缺陷分以下四个模块展开:单线程应用的缺陷多线程应用的优势多线程应用的缺陷常见的使用单/多线程的场景1、单线程应用的缺陷单线程应用顾名思义:整个系统的运行根据围绕一个线程来展开。首先最容易想到的问题是原创 2020-05-28 22:17:02 · 787 阅读 · 0 评论 -
1、多线程简单介绍
概述多线程,顾名思义也就是说多个线程共同执行来保证应用的稳定性和可用性,现如今几乎所有的应用都采用多线程模式。JAVA 语言从一开始就支持多线程,并通过并发包(java.util.concurrent)封装了一系列和线程有关的JAVA类。作为开发者,我们在使用这些并发包的时候也应该清楚其中的原理,这样以后在遇到问题时也可以尽快找出原因。多线程本篇我们主要通过以下三个模块简单的介绍多线程:多线程的发展史多线程带来的挑战并发和并行1、多线程的发展史在最开始的单CPU时代,单时间点只能执行原创 2020-05-28 16:01:08 · 405 阅读 · 0 评论