JUC-JUC是什么?
一、JUC是什么?
java.util.concurrent在并发编程中使用的工具类
进程/线程回顾
1、进程/线程是什么?
进程:进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。
线程:通常在一个进程中可以包含若干个线程,当然一个进程中至少有一个线程,不然没有存在的意义。线程可以利用进程所拥有的资源,在引入线程的操作系统中,通常都是把进程作为分配资源的基本单位,而把线程作为独立运行和独立调度的基本单位,由于线程比进程更小,基本上不拥有系统资源,故对它的调度所付出的开销就会小得多,能更高效的提高系统多个程序间并发执行的程度。
2、进程/线程的例子?
使用 QQ ,查看进程一定有一个 QQ.exe 的进程,我可以用 qq 和 A 文字聊天,和 B 视频聊天,给 C 传文件,给 D 发一段语言, QQ 支持录入信息的搜索。
大四的时候写论文,用 word 写论文,同时用 QQ 音乐放音乐,同时用 QQ 聊天,多个进程。
word 如没有保存,停电关机,再通电后打开 word 可以恢复之前未保存的文档, word 也会检查你的拼写,两个线程:容灾备份,语法检查
3、线程状态?
Thread.State public enum State { /**
* Thread state for a thread which has not yet started.
*/
NEW ,(新建) /**
* Thread state for a runnable thread. A thread in the runnable
* state is executing in the Java virtual machine but it may
* be waiting for other resources from the operating system
* such as processor.
*/
RUNNABLE ,(准备就绪) /**
* Thread state for a thread blocked waiting for a monitor lock.
* A thread in the blocked state is waiting for a monitor lock
* to enter a synchronized block/method or
* reenter a synchronized block/method after calling
* { @link Object#wait() Object.wait}.
*/
BLOCKED ,(阻塞) /**
* Thread state for a waiting thread.
* A thread is in the waiting state due to calling one of the
* following methods:
* <ul>
* <li> { @link Object#wait() Object.wait} with no timeout </li>
* <li> { @link #join() Thread.join} with no timeout </li>
* <li> { @link LockSupport#park() LockSupport.park} </li>
* </ul>
*
* <p> A thread in the waiting state is waiting for another thread to
* perform a particular action.
*
* For example, a thread that has called <tt> Object.wait() </tt>
* on an object is waiting for another thread to call
* <tt> Object.notify() </tt> or <tt> Object.notifyAll() </tt> on
* that object. A thread that has called <tt> Thread.join() </tt>
* is waiting for a specified thread to terminate.
*/
WAITING ,(不见不散) /**
* Thread state for a waiting thread with a specified waiting time.
* A thread is in the timed waiting state due to calling one of
* the following methods with a specified positive waiting time:
* <ul>
* <li> { @link #sleep Thread.sleep} </li>
* <li> { @link Object#wait(long) Object.wait} with timeout </li>
* <li> { @link #join(long) Thread.join} with timeout </li>
* <li> { @link LockSupport#parkNanos LockSupport.parkNanos} </li>
* <li> { @link LockSupport#parkUntil LockSupport.parkUntil} </li>
* </ul>
*/
TIMED_WAITING ,(过时不候) /**
* Thread state for a terminated thread.
* The thread has completed execution.
*/
TERMINATED ;(终结)
}
线程的状态
NEW :新建一个线程
RUNNABLE:准备就绪
BLOCKED:阻塞
WAITING:死等
TIMED_WAITING:过时不候
TERMINATED:终结者
4、wait/sleep区别?
wait/sleep
功能都是当前线程暂停,有什么区别?
wait放开手去睡,放开手里的锁sleep握紧手去睡,醒了手里还有锁
5、什么是并发?什么是并行?
并发:同一时刻多个线程在访问同一个资源,多个线程对一个点 例子:小米9今天上午10点,限量抢购
春运抢票 电商秒杀...
并行:多项工作一起执行,之后再汇总 例子:泡方便面,电水壶烧水,一边撕调料倒入桶中
JUC-JUC是什么?的更多相关文章
- JUC——JUC开发简介(一)
前言 JUC是Java5.0开始提供的一组专门实现多线程并发处理的开发框架,利用JUC开发架构可以有效的解决实际线程项目开发之中出现的死锁.阻塞.资源访问与公平机制. 此笔记主要记录java.util ...
- 【JUC系列第一篇】-Volatile关键字及内存可见性
作者:毕来生 微信:878799579 什么是JUC? JUC全称 java.util.concurrent 是在并发编程中很常用的实用工具类 2.Volatile关键字 1.如果一个变量被volat ...
- 狂神说JUC学习笔记(一)
狂神说JUC的原版笔记: 链接:https://pan.baidu.com/s/12zrGI4JyZhmkQh0cqEO4BA 提取码:d65c 我的笔记在狂神的笔记上增加了一些知识点或者做了些许修改 ...
- Java多线程系列--“JUC锁”03之 公平锁(一)
概要 本章对“公平锁”的获取锁机制进行介绍(本文的公平锁指的是互斥锁的公平锁),内容包括:基本概念ReentrantLock数据结构参考代码获取公平锁(基于JDK1.7.0_40)一. tryAcqu ...
- Java多线程系列--“JUC锁”04之 公平锁(二)
概要 前面一章,我们学习了“公平锁”获取锁的详细流程:这里,我们再来看看“公平锁”释放锁的过程.内容包括:参考代码释放公平锁(基于JDK1.7.0_40) “公平锁”的获取过程请参考“Java多线程系 ...
- 【目录】JUC锁框架目录
JUC锁框架的目录整理如下: 1. [JUC]JUC锁框架综述 2. [JUC]JDK1.8源码分析之LockSupport(一) 3. [JUC]JDK1.8源码分析之AbstractQueuedS ...
- 【目录】JUC集合框架目录
JUC集合框架的目录整理如下: 1. [JUC]JUC集合框架综述 2. [JUC]JDK1.8源码分析之ConcurrentHashMap(一) 3. [JUC]JDK1.8源码分析之Concurr ...
- java多线程系类:JUC原子类:01之框架
本系列内容全部来自于http://www.cnblogs.com/skywang12345/p/3514589.html 特在此说明!!!!! 根据修改的数据类型,可以将JUC包中的原子操作类可以分为 ...
- Java多线程系列--“JUC锁”10之 CyclicBarrier原理和示例
概要 本章介绍JUC包中的CyclicBarrier锁.内容包括:CyclicBarrier简介CyclicBarrier数据结构CyclicBarrier源码分析(基于JDK1.7.0_40)Cyc ...
- Java多线程系列--“JUC锁”02之 互斥锁ReentrantLock
本章对ReentrantLock包进行基本介绍,这一章主要对ReentrantLock进行概括性的介绍,内容包括:ReentrantLock介绍ReentrantLock函数列表ReentrantLo ...
随机推荐
- 浅谈Javascript中的原型、原型链、继承
构造函数,原型,实例三者的关系 构造函数: 构造函数是创建对象的一种常用方式, 其他创建对象的方式还包括工厂模式, 原型模式, 对象字面量等.我们来看一个简单的构造函数: function Produ ...
- Elasticsearch配置集群环境
环境选择: 1.方案一:准备三台机器 每一台机器一个节点 2.方案二:准备一台机器 启动三个节点,用端口号区分即可 3.ES启 ...
- JQuery调用WebService封装方法
//提交的webservice链接 //var url = "/wsstafffrate?OpenWebService"; //请求前拼接好的soap字符串 //var soapd ...
- 浅谈python的第三方库——pandas(终)
作为pandas系列的最终章,本文引出一个数据"复制"问题. 示例如下: 从上图中可以看到:我们对data_pd做了删除一行的操作,但是这并没有改变变量data_pd在内存中的值, ...
- 洛谷P1808 单词分类_NOI导刊2011提高(01) 字符串排序
洛谷P1808 单词分类_NOI导刊2011提高(01) 题目描述 Oliver为了学好英语决定苦背单词,但很快他发现要直接记住杂乱无章的单词非常困难,他决定对单词进行分类. 两个单词可以分为一类当且 ...
- ISE post-place&route仿真准备
ISE post-place&route仿真准备 使用目的:post-place&route仿真是综合后考虑门延时而进行的仿真.因为考虑到各个门的延时,所以可以发现行为仿真(behav ...
- Python数值运算
算术运算 a=10 b=2 + 加-两个对象相加 a+b输出结果12 - 减-得到负数或是一个数减去另一个数 a - b输出结果8 * 乘-两个数相乘或是返回一个被重复若干次的字符串 a * b输出结 ...
- javaweb利用javabean将数据库中内容遍历在页面输出
效果如下图 它所实现的就是把数据库中一个表中所有的数据一条一条以表格的形式输出在网页上, 实现方法如下 首先我们要从数据库读取数据,这里要借助javabean来方便我们传递数据 以上面的为例,我要输出 ...
- html颜色名颜色代码对照表
- LeetCode:27 移除元素
给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成 ...