并发编程与前端初解
并发编程
并发编程之进程
程序
程序就是一堆编码产生的文件,程序躺在硬盘上是“死的”。
进程
进程就是在内存中正在运行的程序,存在于内存中是"活的"。
发明进程的目的是为了更好的描述正在运行的程序,比如电脑上运行了typora、WeChat等软件
之前说过,计算机通过分配不同的PORT号来管理不同的进程,计算机运行多个QQ也算多个不同的进程,同样可以用PORT号管理。
PS:进程与进程之间彼此是隔离的,在默认情况下是不能相互交互数据的。
进程的调度
前提:计算机只有一个CPU工作
进程调度的发展史
1.先来先服务(FCFS)
哪个进程先启动就先运行谁 后面的排队等着
2.短作业优先调度
耗时较短的优先服务 耗时较长的延后服务 # 利于短作业不利于长作业
3.时间片与多级反馈队列(最优解)
同步
提交一个任务之后原地等待任务的结果,期间不做任何事情。
异步
提交一个任务之后不原地等待任务的结果直接去做其他事情,等任务有结果之后会自动通过回调机制告诉提交者。
结论:异步在执行任务的时候效率更高!!!
阻塞
阻塞态(软件自身暂时不需要使用CPU)
非阻塞
就绪态
运行态
进程运行效率最高的情况是:异步非阻塞;效率最低的是:同步阻塞。
进程的创建
1.双击一个软件图标
2.命令创建
3.代码创建(了解)
进程的结束
1.点击关闭按钮
2.命令结束(taskkill)
3.代码结束(了解)
其实我们前面所学习的进程是一个资源单位。
真正与CPU交互工作的是进程里面的线程。
例如:运行一个word编辑器,该编辑器在内存中就是一个进程(资源单位)。
该进程内部含有很多功能:打字功能、保存功能、翻译功能。
这些功能其实就可以看成是不同的线程(真正干活的人) 很明显这些线程一个同属于一个进程。
前端
定义
任何与用户直接打交道的操作界面都可以称之为"前端"。
不直接与用户打交道 "后端"(程序员写的代码)。
前端三剑客
HTML:网页的骨架
CSS:网页的样式
JavaScript:网页的动态效果,事件处理等
如何查看网页源代码
鼠标右键点击查看网页源码
如何查看浏览器优化之后的源代码
鼠标右键点击检查选择elements标签页
直接按键盘的F12弹出选择elements标签页
谷歌浏览器标签页说明
1.Elements用于查看优化之后的网页代码
2.console支持直接编写JS代码,类似于一个输出设置
3.sources记录浏览器请求所有的资源文件(后面网络爬虫需要学习)
4.network记录浏览器所有的网络请求(后面网络爬虫需要学习 重点)
5.Application提供额外的存储相关概念(后面网络爬虫需要学习 cookies)
如何查看页面上某个内容的代码本质
点击图片框选按钮,再点击页面内容即可
如何修改弹出框的位置
在右上角点击框选按钮,然后在下列四种格式中选择
HTML
HTML的全称是:超文本标记语言
其实所有的网页都是以.html结尾的文件
HTML文件固定语法结构
<html> <head>主要书写给浏览器看的内容</head> <body>主要书写展示给用户的内容</body> </html>
注释
注释的意思是对一段代码的解释 不参与运行只是解释说明
html中注释的语法是(存储html的文件后缀名是.html) <!--注释内容--> css中的注释语法是(存储css的文件后缀名是.css) /*注释内容*/ JS中的注释语法是(存储js的文件后缀名是.js) // 注释内容 也可以在html文件内通过标签的方式直接书写其他语言
PS:不同的语言,不同的文件,使用的注释可能都是不同的。
网页的本质
<!DOCTYPR html> <html> <head> <title>这是全网最牛逼的网页</title> <style> <!--style标签内部支持直接书写css代码--> h1 { color:red } </style> <script> <!--script标签内部支持直接书写JS代码--> alert(123) </script> </head> <body> <h1>这是一个h1标签</h1> <a href='https://www.baidu.com'>点我去百度</a> <img src='https://img1.baidu.com/it/u=497641285,412646493&fm=26&fmt=auto&gp=0.jpg' /> </body> </html>