多线程与并发
文章平均质量分 96
张小胖不胖
离梦想最近的方式就是不断的努力前进。
展开
-
【Java多线程与并发】——进程与线程联系与区别
进程从狭义上来说:是一段程序的执行过程从广义上来说:进程是一个具有独立功能的程序关于某个数据集的一次运行活动,它是操作系统动态执行的基本单元线程线程可以理解为进程中独立运行的子任务,作为独立运行和独立调度的基本单位区别和联系进程的执行过程是线状的, 尽管中间会发生中断或暂停,但该进程所拥有的资源只为该线状执行过程服务。一旦发生进程上下文切换,这些资源都是要被保护起...转载 2018-10-18 08:47:14 · 196 阅读 · 0 评论 -
【Java多线程与并发】——wait/notify
wait/notify为何而来?我们知道,线程与线程之间并不是完全独立的个体,多个线程之间可以通过访问共享变量,可以实现线程间进行通信。然而当多个线程访问同一共享变量,如果没有使用同步机制,即没有使用synchronize同步方法或者同步代码块,我们不确定线程读到的共享变量的值到底是不是想要的,或者说是准确的值。因此等待/通知机制的出现就满足解决了这一需求问题。 wait与not...原创 2018-11-05 22:01:35 · 983 阅读 · 0 评论 -
【Java多线程与并发】——理解happens-before
摘自《Java高并发编程详解》用于概念理解happens-before由何出现?程序员希望内存模型易于理解、易于编程。程序员希望基于一个强内存模型来编写代码;而编译器和处理器希望内存模型对它们的束缚越少越好,这样它们就可以做尽可能多的优化来提高性能。编译器和处理器希望实现一个弱内存模型。由于这两个因素互相矛盾,所以JSR-133专家组在设计JMM时的核心目标就是找到一个好的平衡点:一方...转载 2018-11-12 22:03:27 · 259 阅读 · 0 评论 -
【Java多线程与并发】——join
目录1、join()简介2、例子3、底层原理4、其他方法1、join()简介join()方法的作用在一个线程内调用另一个线程实例的join()方法,表示线程在此阻塞,以等待相应的实例执行完成,join()内部是通过wait()方法实现的,因此调用join会自动释放锁2、例子public class ThreadDemo extends Thread { ...原创 2018-11-06 15:11:17 · 370 阅读 · 0 评论 -
【Java多线程与并发】——volatile关键字
在深入了解volatile关键字之前,我们有必要了解一些前提知识Java并发编程的三个重要的特性 原子性 所谓原子性是指在一次操作或多次操作中,要么所有的操作全部都得到了执行并且不会收到任何因素的干扰而中断,要么所有的操作都不执行。 可见性 可见性是指,当一个线程对共享变量进行了修改,那么另外的线程可以立即看到修改后的最新值。 有序性 有序性是指程序代码在执行过程...原创 2018-11-12 22:37:21 · 343 阅读 · 0 评论 -
【Java多线程与并发】——Synchronized关键字详解
目录一、syncronized关键字介绍二、synchronized使用场景三 、synchronized的一些特性1)synchronized具有锁重入的功能2)同步不具有继承性3)退出或者异常发生时自动释放锁4)synchronized(string)使用的注意5)synchronized使用基本原则四、synchronized实现原理及应用1)同步方法...原创 2018-10-24 22:59:14 · 383 阅读 · 0 评论 -
【Java多线程与并发】——Thread.currentThread().getName()和this.getName()区别
首先,Thread.currentThread().getName() 和 this.getName()都可以用来获得线程的名称,但是它们是有区别滴,不能乱用!下面分别对这两个方法进行剖析:先来说说currentThread()方法,它的源码如下,它是一个本地方法,方法返回一个Thread对象: /** * Returns a reference to the curr...转载 2018-10-22 21:22:20 · 581 阅读 · 0 评论 -
【Java多线程与并发】——JAVA多线程实现的四种方式
学习知识,尊重别人的劳动成果,原文地址:https://www.cnblogs.com/felixzh/p/6036074.htmlJava多线程实现方式主要有四种:继承Thread类、实现Runnable接口、实现Callable接口通过FutureTask包装器来创建Thread线程、使用ExecutorService、Callable、Future实现有返回结果的多线程。其中前两种方...转载 2018-10-22 10:52:50 · 240 阅读 · 0 评论 -
【Java多线程与并发】——多线程基础知识
目录一、什么是多线程二、多线程创建的几种方式1、继承Thread2、实现Runnable接口3、实现Callable接口4、线程池三、线程的生命周期四、Thread中的一些方法五、如何停止一个线程1、使用return停止线程:2、使用interrupt方法中断线程:3、抛异常法(推荐用法):4、在沉睡中停止:5、为什么不使用stop()方法停...原创 2018-10-22 15:37:15 · 273 阅读 · 0 评论