java并发编程
文章平均质量分 57
鹏之翼
Hello world.
展开
-
Java并发编程synchronized详解
1原创 2022-03-31 00:59:12 · 398 阅读 · 0 评论 -
Java并发编程CAS与Atomic原子类
1原创 2022-03-29 09:41:36 · 511 阅读 · 0 评论 -
Java线程创建过程
1.使用new Thread()创建一个线程,然后调用start()方法进行java层面的线程启动;2.调用本地方法start0(),去调用jvm中的JVM_StartThread方法进行线程创建和启动;3.调用new JavaThread进行线程的创建,并根据不同的操作系统平台调用对应的os::create_thread方法进行线程创建;4.新创建的线程状态为Initialized,调用wait()方j法进行等待,等到被唤醒才继续执行thread->run();;5.调用Thread::..原创 2022-03-29 01:00:23 · 1116 阅读 · 0 评论 -
Java线程生命周期
一、操作系统层面 在操作系统中线程生命周期可以分为五种状态。分别是:初始状态、可运行状态、运行状态、休眠状态和终止状态。二、Java层面 但是在Java中,线程的生命周期有六种状态,分别是:新键NEW,就绪RUNNABLE、阻塞BLOCKED、等待WAITING、超时等待TIMED_WAITING、终止Terminated。Java中将操作系统中断休眠状态分为了三种状态,也就是:BLOCKED、WAITING、TIMED_WAITING。只要 Java 线程处于这三...原创 2022-03-29 00:28:17 · 4822 阅读 · 1 评论 -
Java并发中的sleep、yield、join、stop方法
一、sleep方法 1.调用 sleep 会让当前线程从 Running 进入TIMED_WAITING状态,但是不会释放对象锁 2.其它线程可以使用 interrupt 方法打断正在睡眠的线程,这时 sleep 方法会抛出InterruptedException,并且会清除中断标志 ,此时要在finally代码块中重新设置中断标志位hread.currentThread().interrupt();3.sleep当传入参数为0时,和yield一样可...原创 2022-03-29 00:05:04 · 724 阅读 · 0 评论 -
Java线程间通信&&进程间通信
一、进程间通信的方式 1. 管道和有名管道:管道可用于具有亲缘关系的父子进程间的通信,有名管道除了具有管道所具有的功能外,它还允许无亲缘关系进程间的通信。 2. 信号(signal):用于通知进程有某事件发生,一个进程收到一个信号与处理器收到一个中断请求效果上可以说是一致的。 3. 消息队列(message queue):消息队列是消息的链接表。比如生产者-消费者模式就用到该方式,生产者可以向队列中写东西,消费者从中拿取东西。...原创 2022-03-28 23:38:42 · 931 阅读 · 0 评论 -
关于Java并发中的进程、线程、协程、管程及其联系区别
一、进程程序是由指令和数据构成的,而指令要运行就要加载到CPU中,数据要读写就要将数据加载到内存中。进程就是用来加载指令,管理内存和io的,操作系统会以进程为单位,分配系统资源(时间片,内存等),就是说,进程是资源分配的最小单位。二、线程线程存在于进程中,是进程中的实体,也可以称为轻量级进程,是CPU调度执行的最小单位。两者间的区别与联系: 1.进程是相互独立的,线程存在于进程中。 2.进程内有共...原创 2022-03-28 22:32:21 · 1155 阅读 · 0 评论 -
JMM内存模型&上下文切换
并行:指在同一时刻,有多条指令在多个处理器上同时执行。并发:同一时刻只能有一条指令执行。解决多线程同步,互斥、分工。并发三大特性:1.有序性:程序执行的顺序按照代码的先后顺序执行。2.原子性:一个或多个操作,要么全部执行且在执行过程中不被任何因素打断,要么全部不执行。3.可见性:当一个线程修改了共享变量的值,其他线程能够看到修改的值。 JMM内存模型线...原创 2022-03-26 16:20:15 · 305 阅读 · 0 评论 -
java并发编程之保持可见性的方法
线程可见性原创 2022-03-19 00:04:40 · 934 阅读 · 0 评论