并发编程
文章平均质量分 91
学习并发编程
不太自律的程序猿
但行好事,莫问前程
展开
-
并发编程——volatile关键字详解(一)
前言我们一般对共享数据操作的时候,为了达到线程安全我们会使用volatile关键字去修饰一些共享数据,已达到一个数据可见性。那么今天我们就来讲一讲volatile关键字的使用。专栏推荐:并发编程专栏volatile的作用原子性一个操作或者多个操作,要么全部执行成功,要么全部执行失败。满足原子性的操作,中途不可被中断。可见性多个线程共同访问共享变量时,某个线程修改了此变量,其他线程能立即看到修改后的值。有序性程序执行的顺序按照代码的先后顺序执行。(由于JMM模型中允许编译器和处理器为了效率原创 2021-08-13 23:42:16 · 269 阅读 · 0 评论 -
并发编程——synchronized关键字的使用
前言我们一般对共享数据操作的时候,为了达到线程安全我们会使用synchronized关键字去修饰方法或者代码块。那么今天我们就来讲一讲synchronized关键字的使用。专栏推荐:并发编程专栏synchronized的使用synchronized的使用可以修饰代码块,也可以修饰对象方法,以及静态方法。不过这些修饰的本质实质就只是锁的资源不同,一种是对象,一种是类。修饰代码块错误代码:this,对象锁当我们使用不同实例对象去调用方法的时候会发现结果并不是我们想象的20000,因为this原创 2021-08-12 23:40:29 · 131 阅读 · 0 评论 -
并发编程——线程中sleep(),yield(),join(),wait(),notify(),notifyAll()区别
前言今天简单的讲一讲线程中sleep(),join(),yield(),wait(),notify(),notifyAll()这些方法的使用以及区别。不过在讲这些方法之前,需要简单的介绍一下锁池和等待池的概念。专栏推荐:并发编程专栏锁池和等待池1.锁池所有需要竞争同步锁的线程都会放在锁池当中,比如当前对象的锁已经被其中一个线程得到,则其他线程需要在这个锁池进行等待,当前面的线程释放同步锁后锁池中的线程去竞争同步锁,当某个线程得到后会进入就绪队列进行等待cpu资源分配。2.等待池当我们调用w原创 2021-08-11 23:19:34 · 123 阅读 · 0 评论 -
并发编程——如何终止线程
前言今天简单的讲一讲如何终止线程。如果对于线程的创建方式不太了解,推荐观看并发编程——认识java里的线程对于线程状态及其切换不了解的,推荐观看并发编程——Java线程的6种状态及切换对于线程的启动不了解的,推荐观看并发编程——线程的启动终止线程终止线程的方式1、使用标记变量我们通过继承Thread来创建一个自定义的线程类,里面live这个属性是用来控制线程是否终止使用main方法去测试,启动线程,然后延迟20毫秒,然后我们去改变这个live,使其跳出循环,继续往下走,执行完run,达到原创 2021-08-10 23:30:45 · 107 阅读 · 0 评论 -
并发编程——线程的启动
前言今天简单的讲一讲线程的启动start方法。如果对于线程的创建方式不太了解,推荐观看并发编程——认识java里的线程对于线程状态及其切换不了解的,推荐观看并发编程——Java线程的6种状态及切换线程的启动在并发编程——认识java里的线程中我们有讲过线程的创建,我们启动线程的时候使用的是start方法。那么我们就先来看看start方法,简单的附上一些源码:关于threadStatus源码:通过代码可以看到就是threadStatus就是记录Thread的状态,初始线程默认为0.加入线原创 2021-08-09 22:32:24 · 226 阅读 · 0 评论 -
并发编程——Java线程的6种状态及切换
前言本次主要分享一下Java线程的六种状态及其转换。如果对于线程的创建方式不太了解,推荐观看并发编程——认识java里的线程线程的状态及其转换操作系统线程的五种状态新建(NEW)就绪(RUNNABLE)运行(RUNNING)阻塞(BLOCKED)死亡(DEAD)注意:BLOCKED状态,包括三种类型状态:等待(wait)、睡眠(sleep)、阻塞(申请资源:I\O、对象的锁);Java线程的六种状态新建(NEW)可运行(RUNNABLE)阻塞(BLOCKED)等待(原创 2021-08-08 20:22:25 · 114 阅读 · 0 评论 -
并发编程——认识java里的线程
本文系作者 chaoCode原创,转载请私信并在文章开头附带作者和原文地址链接。违者,作者保留追究权利。前言并发编程在我们日常开发中是时时刻刻都有在用的,只不过大部分的代码底层已经帮我们去做了一些并发编程的安全处理,但是还是有很多情况下需要我们自己去控制,所以我们需要去了解学习并发编程,那么我们一步一步深入的开始学习。认识java里的线程Java 程序天生就是多线程的一个 Java 程序从 main()方法开始执行,然后按照既定的代码逻辑执行,看 似没有其他线程参与,但实际上 Java 程序天生原创 2021-08-07 16:47:30 · 122 阅读 · 0 评论 -
并发编程——基础概念(二)
本文系作者 chaoCode原创,转载请私信并在文章开头附带作者和原文地址链接。违者,作者保留追究权利。前言并发编程在我们日常开发中是时时刻刻都有在用的,只不过大部分的代码底层已经帮我们去做了一些并发编程的安全处理,但是还是有很多情况下需要我们自己去控制,所以我们需要去了解学习并发编程,那么我们一步一步深入的开始学习。如果有小伙伴没有看过之前的并发编程——基础概念(一)可以自行观看。本篇为概念性的东西,可能比较冗长,请耐心解读,对于学习并发编程之前我们首先要知道这些基本的概念。基础概念原创 2021-08-06 09:38:20 · 125 阅读 · 0 评论 -
并发编程——基础概念(一)
本文系作者 chaoCode原创,转载请私信并在文章开头附带作者和原文地址链接。违者,作者保留追究权利。前言并发编程在我们日常开发中是时时刻刻都有在用的,只不过大部分的代码底层已经帮我们去做了一些并发编程的安全处理,但是还是有很多情况下需要我们自己去控制,所以我们需要去了解学习并发编程,那么我们一步一步深入的开始学习。本篇为概念性的东西,可能比较冗长,请耐心解读,对于学习并发编程之前我们首先要知道这些基本的概念。基础概念1.什么是进程和线程进程是程序运行资源分配的最小单位进程是操作系统进行资原创 2021-08-05 10:03:45 · 183 阅读 · 0 评论