![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
并发系列
文章平均质量分 93
小云儿_
宁愿上天赐我五雷轰顶,也不要过着淡出鸟的生活,活着的我们需要激情。
展开
-
并发编程<一>线程5大状态切换时机分析及sleep,join,wait,notify,notifyAll,yield剖析
线程5大状态分析 上图是线程从创建到消亡的一个切换过程。下面我们简单类分析每一个状态。 新建状态:新建状态具体是指调用new Thread()创建出线程对象,但是还没有调用start方法的这段时间。前面的一篇文章《Java虚拟机剖析之内存区域,内存的溢出,泄漏》一文中有说到,每一个线程都会有自己的私有内存区域。处于新建状态下的线程,此时还未分配系统资源,也即是还没有分配到私有内原创 2017-11-08 11:05:30 · 994 阅读 · 0 评论 -
并发编程<三>线程实现方式Thread,Runnable
Thread,Runnable的区别 我们创建线程的方式一般来说有两种,首先我们来看看两种启动线程方式的具体实现。 第一种继承Thread类,实现run方法,最后调用start方法启动线程。第二种实现Runnable接口,实现run方法,然后调用Thread的有参构造方法,将Runnable的子类对象作为构造方法的参数创建一个Thread对象,最后调用start方法启动线程。 从原创 2017-11-08 15:58:21 · 222 阅读 · 0 评论 -
并发编程<四>并发不可预期结果的根本原因
提出问题 说到并发,我们应该给自己提出下面这三个问题: 产生并发的根本原因是什么?会造成什么后果?怎么去控制,处理并发达到我们预期的结果。 提出这三个问题之后,我们慢慢来看看一下几个知识点,这三问题自然迎刃而解。解答上面3个问题之前,我们需要对JVM的内存模型有所了解,在《JVM内存模型》一文中已经将JVM内存模型讲的很清楚了,对JVM内存模型不了解的同学可以先去看看,然后继续本文。原创 2017-11-09 15:06:51 · 428 阅读 · 0 评论 -
并发编程<五>并发处理之synchronized
序言-几个基本概念 在本系列中第四篇文章中已经讲述了并发产生的不可控结果,和结果不可控的根本原因。现在来说说Java所提供的并发处理方式之一的synchronized关键字。学习synchronized关键字之前,我们需要了解一下一下几个概念。 临界资源 多个线程共同访问的资源我们称之为临界资源。对象锁 synchronized引入了锁的概念,每个对象都有一个锁标记,我们称其为对象原创 2017-11-13 10:45:39 · 250 阅读 · 0 评论 -
并发编程<二>线程中断和线程中断标志
线程中断,interrupt方法 先看代码和输出结果 子线程代码: package com.example; /** * Created by PICO-USER on 2017/11/6. */ public class ThreadA extends Thread { @Override public void run() { su原创 2017-11-06 15:53:12 · 774 阅读 · 0 评论