![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Thread
文章平均质量分 91
qq_42283110
这个作者很懒,什么都没留下…
展开
-
多线程学习笔记:7.java内存模型与线程
Java内存模型(Java Memory Model,JMM):JMM是一种规范,用来屏蔽各硬件和操作系统的内存访问差异,以实现让Java程序在各平台下都能达到一致的内存访问效果。1.主内存与工作内存:Java内存模型的主要目标是定义程序中各个变量的访问规则,即在虚拟机中将变量存储到内存和从内存中取出变量这样底层细节。此处的变量与Java编程时所说的变量不一样,指包括了实例字段、静态字...原创 2019-03-01 23:43:19 · 128 阅读 · 1 评论 -
多线程学习笔记:2.使用线程池技术实现多线程一。
参考文档:https://blog.csdn.net/wang7807564/article/details/80048648 https://blog.csdn.net/he90227/article/details/52576452线程池的技术背景在面向对象编程中,创建和销毁对象是很费时间的,因为创建一个对象要获取内存资源或者其它更多资源。在Jav...原创 2019-01-22 23:26:20 · 228 阅读 · 0 评论 -
多线程学习笔记:6.线程常用概念和方法
1.休眠调用sleep()方法可以让线程睡眠指定时间。调用后线程进入超时等待状态。2.优先级线程的优先级为1—10共10个级别。调度器倾向于让优先级高的线程先执行。所以优先级越高,被执行的频率就越高。线程的默认优先级为5.可以使用getPriority()方法获取当前线程优先级,使用setPriority()方法设置线程优先级。JDK的10个优先级与多数操作系统不能很好的映射,...原创 2019-01-27 16:56:42 · 132 阅读 · 0 评论 -
多线程学习笔记:5.ThreadPoolExecutor执行过程初步了解。
变量ctl实现原理:ThreadPoolExecutor中使用变量ctl来描述线程池状态,存储的是当前线程池的运行状态和线程池中的线程总数,相关代码如下: private final AtomicInteger ctl = new AtomicInteger(ctlOf(RUNNING, 0)); //数值为29,用于区分线程池状态区和线程池总数区 private ...原创 2019-01-27 11:38:00 · 156 阅读 · 0 评论 -
多线程学习笔记:1.实现多线程的四种方式
Java多线程实现方式主要有四种:继承Thread类、实现Runnable接口、实现Callable接口通过FutureTask包装器来创建Thread线程、使用线程池技术ExecutorService、Callable、Future实现有返回结果的多线程。1、继承Thread类创建线程Thread类本质上是实现了Runnable接口的一个实例,代表一个线程的实例。启动线程的唯一方法就是通过...原创 2019-01-21 22:25:31 · 187 阅读 · 0 评论 -
多线程学习笔记:4.线程状态分析
Thread类中用state枚举定义了线程的6种状态:各状态具体含义:NEW(新建):创建后尚未启动的线程处于这个状态。RUNNABLE(可运行):Java线程中将就绪(ready)和运行中(running)两种状态笼统的称为“运行”,也就是处于此状态的线程可能正在运行,也可能正在等待系统资源,如等待CPU为它分配时间片,等待网络IO读取数据。两种状态之间的相互转换是系统调度完成的...原创 2019-01-26 15:04:22 · 141 阅读 · 0 评论 -
多线程学习笔记:3.使用线程池技术实现多线程二。
ThreadPoolExecutor:之前创建的各种线程池,实际都是通过调用该类的构造方法创建的。public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, ...原创 2019-01-23 22:36:10 · 117 阅读 · 0 评论