线程
文章平均质量分 88
Williamwhc
代码改变世界 + 我改变代码 = 我改变世界
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
JAVA并发-探究sychronized底层实现原理
前言: 之前一直对sychronized的原理不是特别清楚,只知道在jdk1.6之前使用sychronized锁性能较低,后续进行了优化,加入了偏向锁、自旋等机制来提高sychronized性能,但是抱着模棱两可的心态总是很受的,于是特意学习了一波,充实自己,也分享于大家,本文主要是对sychronized特性以及实现原理进行剖析,本文会以代码结合反编译字节码的形式来进行分析 简介: 1.sych...原创 2018-10-01 13:18:50 · 226 阅读 · 0 评论 -
线程sleep方法的使用(源码解读)
package com.thread; public class TestSleep { public static void main(String[] args) { SleepThread st = new SleepThread(); Thread t1 = new Thread(); Thread t2 = new Thread(); t1.start(); ...原创 2019-01-05 15:38:32 · 1318 阅读 · 3 评论 -
线程的优先级设置(源码解读)
package com.thread; public class TestPriority { public static void main(String[] args) { PriorityThread pt = new PriorityThread(); ThreadGroup tg1 = new ThreadGroup("线程1组"); ThreadGroup tg2 ...原创 2019-01-05 15:10:32 · 294 阅读 · 0 评论 -
Java并发编程:可重入锁
关于线程安全的例子,简而言之就是多个线程在同时访问或修改公共资源的时候,由于不同线程抢占公共资源而导致的结果不确定性,就是在并发编程中经常要考虑的线程安全问题。现在尝试来用Lock显式加锁来解决线程安全的问题,先来看一下Lock接口的定义: public interface Lock Lock接口有几个重要的方法: //获取锁,如果锁不可用,出于线程调度目的,将禁用当前线程,并且在获得锁之前,...原创 2018-11-14 08:15:27 · 217 阅读 · 0 评论 -
Java多线程实现的四种方式
Java多线程实现的方式有四种 1.继承Thread类,重写run方法 2.实现Runnable接口,重写run方法,实现Runnable接口的实现类的实例对象作为Thread构造函数的target 3.通过Callable和FutureTask创建线程 4.通过线程池创建线程 前面两种可以归结为一类:无返回值,原因很简单,通过重写run方法,run方式的返回值是void,所以没有...原创 2018-09-29 15:18:49 · 202 阅读 · 0 评论 -
什么是线程安全,你真的了解吗?
我们整天说线程安全,但是你对什么是线程安全真的了解嘛?说真的,我之前真的是了解甚微,那么我们今天就来聊聊这个问题。 再说什么是线程安全之前我们先来聊聊什么是进程。 1、什么是进程? 单独运行的程序就是一个独立的进程,进程之间是相互独立存在的。 QQ、酷狗播放器、电脑管家等等都是独立的进程。 2、什么是线程? 上面简单的说了一下什么是进程,进程想要执行任务需要依赖线程,换句话说就是进程中...原创 2018-09-22 23:23:06 · 209 阅读 · 0 评论 -
Java线程的6种状态及切换(透彻讲解)
Java中线程的状态分为6种。 1. 初始(NEW):新创建了一个线程对象,但还没有调用start()方法。 2. 运行(RUNNABLE):Java线程中将就绪(ready)和运行中(running)两种状态笼统的称为“运行”。 线程对象创建后,其他线程(比如main线程)调用了该对象的start()方法。该状态的线程位于可运行线程池中,等待被线程调度选中,获取CPU的使用权,此时处于就绪状态...原创 2018-09-22 23:18:29 · 200 阅读 · 0 评论 -
并发编程3:线程池的使用与执行流程
并发编程系列的文章酝酿好久了,但由于没有时间和毅力去写那么多练习 demo,很多文章写了一半就停止了。 在写某一系列的过程中总有其他想写的内容蹦出来,想忍住不分散精力太难了,所以我很佩服那些能专心研究、总结一个专题的人,他们是有毅力的人! 关于学习的方式我也困惑过很久,究竟是知识体系驱动还是项目驱动比较好呢? 知识体系驱动即一条道走到头的学习(逮住某个专题深入研究,直到整个过一遍) 项目驱动...原创 2018-10-12 09:27:19 · 226 阅读 · 0 评论 -
并发编程2:认识并发编程的利与弊
读完本文你将了解: 多线程的优点 1提高资源利用率 2响应更快 多线程的缺点 1增加资源消耗 2上下文切换的开销 3设计编码测试的复杂度增加 Java 内存模型与 CPU 内存简介 Java 中的堆 Java 中的栈 计算机中的内存寄存器缓存 多线程可能出现的问题 竞态条件与临界区 内存可见性 总结 35 追加 Thanks 从上篇文章 并发编程1:全面认识 Thread 我们了解了 Java ...转载 2018-10-12 09:24:39 · 155 阅读 · 0 评论 -
并发编程1:全面认识 Thread
读完本文你将了解到: 线程简介 线程创建的三种方式 实现 Runnable 接口 继承 Thread重写其 run 方法 实现 Callable 接口重写 call 方法用 FutureTask 获得结果 线程的基本属性 优先级 守护线程 线程的生命周期 线程的关键方法 Threadsleep Objectwait Threadyield Threadjoin 线程的中断 public void...转载 2018-10-12 09:23:43 · 150 阅读 · 0 评论 -
JAVA中线程的生命周期和状态控制
一、线程的生命周期 线程状态转换图: 1、新建状态 用new关键字和Thread类或其子类建立一个线程对象后,该线程对象就处于新生状态。处于新生状态的线程有自己的内存空间,通过调用start方法进入就绪状态(runnable)。 注意:不能对已经启动的线程再次调用start()方法,否则会出现Javalang.IllegalThreadStateException异常。 2、就绪状态...原创 2018-04-14 10:07:36 · 214 阅读 · 0 评论 -
JAVA-多线程-线程控制
1.线程优先级 优先级最大值为10,最小值为1,默认为5,设置线程的优先级,不要超过它的取值范围,不然会抛出异常。 优先级高的线程,会优先得到CPU的时间片的控制权。 RabbitThread rabbitThread = new RabbitThread(); rabbitThread.start(); rabbitThread.setPriority(Thread.MIN_PRIOR...原创 2018-03-25 10:37:26 · 223 阅读 · 0 评论 -
线程和进程的区别
1.定义 进程:两个基本元素:程序代码和与代码相关联的数据集,处理器开始执行程序代码,这个执行实体叫做进程,是系统进行资源分配和调度的基本单位。 线程:线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点儿在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。 2.模型 单线程进程: PCB+用户地址空间+用户栈+内核栈 ...原创 2018-03-26 22:55:32 · 159 阅读 · 0 评论 -
Java多线程常见面试题
1.程序、进程、线程的区别是什么? 程序(Program):是一个指令的集合。程序不能独立运行,只有被加载到内存中,系统为它分配资源后才能执行。 进程(Process):如上所述,一个执行中的程序成为进程。 进程是系统分配资源的独立单位,每个进程占有特定的地址空间。 程序是进程的静态文本描述,进程是程序在系统内顺序的执行的动态活动。 线程(Thread...原创 2018-03-26 22:57:12 · 504 阅读 · 0 评论 -
40个多线程问题总结
1、多线程有什么用? 一个可能在很多人看来很扯淡的一个问题:我会用多线程就好了,还管它有什么用?在我看来,这个回答更扯淡。所谓"知其然知其所以然","会用"只是"知其然","为什么用"才是"知其所以然",只有达到"知其然知其所以然"的程度才可以说是把一个知识点运用自如。OK,下面说说我对这个问题的看法: (1)发挥多核CPU的优势 随着工业的进步,现在的笔记本、台式机乃至商用的应用服原创 2018-04-22 09:20:46 · 197 阅读 · 0 评论 -
线程池的状态分析
本文基于JDK1.8分析下线程池的状态,源码如下 private final AtomicInteger ctl = new AtomicInteger(ctlOf(RUNNING, 0)); private static final int COUNT_BITS = Integer.SIZE - 3; private static final int CAPACITY = (1 <...原创 2018-08-28 11:14:53 · 259 阅读 · 0 评论 -
线程池的好处,详解,单例
前几天公司面试,问了很多线程池的问题,由于也是菜鸟一只本来对线程池就不太熟悉,再加上一紧张脑袋一紧,就GG了,之后可谓是深恶痛极,决定把线程池这边好好的整理一番。 一、线程池的好处 线程池是啥子,干啥使它呀,老子线程使得好好的,非得多次一举,哈哈,想必来这里看这篇文章的都对线程池有点了解。那么我来整理整理线程池的好处吧。 1、线程池的重用 线程的创建和销...原创 2018-08-29 10:28:56 · 245 阅读 · 0 评论 -
java中线程池ExecutorService 线程管理
代码: package com.bob.test; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class ExecutorServiceTest { static void run(Execu...原创 2018-09-07 16:34:41 · 308 阅读 · 0 评论 -
线程中yield()方法的使用
package com.thread; public class TestYield { public static void main(String[] args) { YieldThread yt = new YieldThread(); Thread t1 = new Thread(yt); Thread t2 = new Thread(yt); t1.start()...原创 2019-01-06 12:30:47 · 1214 阅读 · 0 评论
分享