ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

2022-08-03 第六组 刘明延 学习笔记

2022-08-03 02:31:46  阅读:190  来源: 互联网

标签:03 缓存 刘明延 08 线程 内存 等待 CPU 守护


/** 进程:运行中的程序
* 启动一个进程,操作系统就会为该进程分配内存空间
* 关掉进程,就释放内存
*
* 线程:进程的一个实体,由进程创建,也可以创建线程
* 一个进程可以有多个线程
*
* 并发:同一时刻,多个任务交替执行,"貌似同时",单核cpu实现的就是并发
* 并行:同一时刻,多个任务同时执行,多核cpu可以实现并行
*
* 创建线程的两个方法:
* 1.继承Thread,重写run方法
* 2.实现Runnable接口,
* 3.实现Callable接口
*
* 线程名=Thread.currentThread().getName()
*
* !!!真正实现多线程效果的,是start0(),底层是c/c++实现,只有JVM才能调用,start0()在start()方法中
*
* 只有native能控制cpu
* 调用start0方法后,该线程并不一定立即执行,只是将线程变成了可运行状态,具体什么时候运行,取决于cpu,由cpu统一调度
*
* 守护线程:
* Java中提供两种类型1的线程,
* 1.用户线程
* 2.守护程序线程
*
* 守护线程是为用户线程提供服务的,仅在用户线程运行时才需要
*
* 主方法可以理解为用户线程
* 守护线程对于后台支持任务非常有用
* 如:垃圾回收,大多数JVM线程都是守护线程
*
* 主程序就是用户线程,聊天窗口就是守护线程
* 创建守护线程
*
* 在主方法内启动的任何线程默认都是守护线程
*
* 线程的生命周期
* 从摇篮到坟墓
* NEW:这个状态主要是线程未被start()调用执行
* RUNNABLE:线程正在JVM中被执行,等待来自操作系统的调度
* BLOCKED:阻塞,因为某些原因,不能立即执行,需要挂起等待
* WAITING:无限期等待。Object类。如果没有被唤醒,则一直等待
* TIMED_WAITING:有限期等待,线程等待一个指定的时间
* TERMINATED:终止线程的状态,线程已经执行完毕
*
* 等待和阻塞有点像,阻塞是因为外部原因,等待一般是主动调用方法,发起主动的等待,等待可以传入参数,确定等待时间
*
* 同步代码块
* synchronized(对象){//得到对象的锁,才能操作同步代码
* //需要被同步代码
* }
* synchronized还可以放在方法声明中,表示整个方法-为同步方法
* public synchronized void m(String name){
* //需要被同步的代码
* }
*
* CPU多核缓存结构
* 物理内存:硬盘内存 (固态硬盘, 尽量不要选择混合硬盘)
* CPU缓存为了提高程序运行的性能,现在CPU在很多方面对程序进行优化
* CPU处理速度最快,内存次之(不安全),硬盘速度最慢(最安全稳定)
* 在CPU处理内存数据时,如果内存运行速度太慢就会拖累CPU
* 为了解决这样的问题,CPU设计了多级的缓存策略
*
* CPU分为三级缓存,每个CPU都有L1,L2缓存,但是L3缓存时多核公用的
* CPU在查找数据时,CPU->L1->L2->L3->内存->硬盘
* 从CPU到内存,大概要60-80纳秒
* 从CPU到L3,15纳秒
* 从CPU到L2,3纳秒
* 从CPU到L1,1纳秒
* 寄存器,0.3纳秒
* 进一步优化,CPU每次读取一个数据,也读取与它相邻的64个字节的数据
* 【缓存行】
*
* 英特尔提出了一个协议
* 1.修改态,此缓存被动过,内容与主内存不同,为此缓存专有
* 2.专有态,此缓存与主内存一致,但是其他CPU中没有
* 3.共享态,此缓存与主内存一致,其他的缓存也有
* 4.无效态,此缓存无效,需要从主缓存中重新读取
*
* 【指令重排】
* 四条指令,让四个人在四张纸上写下【恭喜发财】,一人一个字,谁先写完就加载,都加载后再排序
*
* Java内存模型-JMM
* 尽量做到硬件和操作系统之间打到一致的访问效果
*
* interrupt:中断线程,包括休眠
* setPriority:更改线程的优先级

学习心得:今天内容不好理解,多线程是最难学的部分,所以要多花时间了解概念和代码
学习感受:和之前的内容结合起来用有难度,尤其是学的东西越来越多,以前的内容变得更重要,必须用更多时间去复习

标签:03,缓存,刘明延,08,线程,内存,等待,CPU,守护
来源: https://www.cnblogs.com/dsofjsdo/p/16545688.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有