进程 线程
进程 是分配资源(内存 文件等)的基本单位,比如 new了一块内存,就是操作系统将一块物理内存映射到 进程的 地址空间上,进程内所有线程都可以访问这块内存
进程是一辆火车,线程就像火车上的车厢 , 车厢离开火车是无法跑动的,火车也不可能只有一节车厢,多线程的出现是为了提高效率
在同一进程中的线程共享相同的地址空间,可以读写同样的数据结构和变量,便于通信,反之进程通信困难且消耗更多资源
并行 并发
并发的关键是 有处理多个任务的能力,不一定要同时
并行的关键是有 同时 处理多个任务的能力
同步 异步
同步:再执行完一个函数或方法之后,一直等待系统返回值或消息,程序是处于阻塞的,只有接收到返回的值或消息后才往下执行其他命令
异步:执行完函数或方法后,不必阻塞性等待,只需要向系统委托一个异步过程,当系统接收到返回值,自动触发委托的不过程,完成整个流程(多线程 必然)
线程安全
安全:当多线程访问时,采用了加锁机制,当一个线程访问某个数据时,其他线程不能进行访问,避免数据不一致
不安全:出现多个线程先后修改数据,造成脏数据
http、socket、TCP
http协议:超文本传输协议;用于规定客户端与服务端之间的传输规则
http请求:
请求行(Method、URL、HTTP版本号)、请求头(附加信息:cookie、host、数据类型等)、请求体(数据)
响应(服务端):状态行(版本号、状态吗)、响应头、响应实体
流程:
1 .建立连接2 .发送请求到服务器(参数)3 .服务器接收响应(参数)4 .客户端接收展示,断开连接
区别:
TCP(传输层协议);HTTP(应用层协议基于TCP);Socket(TCP抽象接口基于TCP);
1.客户端往服务端发送HTTP请求时第一步建立与服务端的TCP连接
三次握手,持久连接:一次TCP可以发送多次的HTTP请求;
2.Socket: HTTP是短连接,Socket(接口)是基于TCP的长连接,除非一方主动断开,否则连接一直保持
3.HTTP采用“请求--响应”机制,在客户端没有发送信息给服务短前,服务端无法推送消息给客户端。
socket连接,双方可以随时喊话
场景:
HTTP :双方不需要保持连接在线(客户端资源获取、文件上传) ;Socket(QQ、微信)
JDK JRE JVM
JDK: JAVA开发工具包(核心)= jre + java工具(java/javac等)+ 基础类库(java api、rt.jar)
jre: JAVA运行时环境 = JVM工作环境 = 类加载器 + 字节码校验器+基础JAVA类库
jvm: java虚拟机,通过计算机仿真模拟各种计算机功能来实现;把 java字节码解释成 机器指令(跨操作系统)并执行
网友评论