--------【线程】
Mr_baci
这个作者很懒,什么都没留下…
展开
-
讲解线程池的一篇干货,很干很干!
文章部分内容以及图片引用自公众号:crossoverJie前言平时接触过多线程开发的童鞋应该都或多或少了解过线程池,之前发布的《阿里巴巴 Java 手册》里也有一条:可见线程池的重要性。简单来说使用线程池有以下几个目的: 线程是稀缺资源,不能频繁的创建。 解耦作用;线程创建于执行完全分开,方便维护 应当将其放入一个池子中,可以给其他任务进行复用。 ...原创 2019-02-25 14:24:20 · 1185 阅读 · 0 评论 -
多线程的几种实现方式
上篇文章总结了下关于线程池很干,很干的干货,这次想着顺便连其他实现多线程的三种方式也汇总下吧!java多线程的几种实现方式:1.继承Thread类,重写run方法2.实现Runnable接口,重写run方法,实现Runnable接口的实现类的实例对象作为Thread构造函数的target3.通过Callable和FutureTask创建线程4.通过线程池创建线程 (上一篇已经讲过了...原创 2019-02-25 15:33:38 · 75664 阅读 · 2 评论 -
线程和线程安全
进程的概念正在运行中的程序就是进程;解释如下图线程的概念进程中的一个独立的执行路径。解释如下图线程的分类单线程:同一时间只能干一件事.(多件事只能等一个处理完成后才能开始处理下一个)多线程:同一时间能干多件事情。(可以辅助线程的并行理解)主线程:程序启动系统自动创建并执行main方法的线程。主线程的执行入口:main方法 (说起主线程在这里顺便提一下 守护线程...原创 2019-02-26 11:34:15 · 374 阅读 · 0 评论 -
Volatile与Synchronized的区别、什么是重排序
多线程学习:Volatile与Synchronized的区别、什么是重排序 java线程的内存模型 java的线程内存模型中定义了每个线程都有一份自己的共享变量副本(本地内存),里面存放自己私有的数据,其他线程不能直接访问,而一些共享变量则存在主内存中,供所有线程访问。 上图中,如果线程A和线程B要进行通信,就要经过主内存,比如线...原创 2019-04-23 17:12:22 · 419 阅读 · 0 评论 -
死锁的成因、场景以及死锁的避免
目录1、死锁概念2、死锁成因3、死锁场景4、死锁的避免前言关于多线程死锁的问题,其实很多人在实际的项目开发中并没有真正的遇到过,当别的同事提起的时候只能知其然,但并不知其所以然(其实那很多人中也包括我 惭愧 哈哈),所以为了日后避免此种尴尬场景的重现,安排它(死锁)!1、死锁概念在Java中使用多线程,就会有可能导致死锁问题(并不是每次都会导致死锁,但往往实...原创 2019-04-28 16:51:04 · 4622 阅读 · 0 评论 -
还没看透Synchronized底层原理,你就out了!
一、Synchronized的基本使用二、Synchronized的底层原理三、运行结果解释四、总结一、Synchronized的基本使用Synchronized是Java中解决并发问题的一种最常用的方法,也是最简单的一种方法。Synchronized的作用主要有三个: 确保线程互斥的访问同步代码 保证共享变量的修改能够及时可见 有效解...转载 2019-04-24 09:18:59 · 309 阅读 · 0 评论