Skip to content

Latest commit

 

History

History
88 lines (58 loc) · 4.64 KB

常见总结答案.md

File metadata and controls

88 lines (58 loc) · 4.64 KB
  1. 区别:

    • 进程是资源分配单位,线程是CPU调度单位
    • 进程拥有一个完整的资源平台,而线程只独享指令流执行的必要资源,如寄存器和栈
    • 进程,线程具有就绪,等待,运行三种基本状态和状态间的转换关系
    • 线程能减少并发执行的时间和空间开销:线程的创建,终止时间比进程短,同一进程内的线程切换比进程短,由于同一进程中的各线程共享内存和文件资源,可不通过内核进行直接通信
    • 进程能并发执行,提高资源利用率和系统吞吐量;线程提高并发执行的程度,减小开销,进一步提高资源的利用率和系统吞吐量。

    线程同步机制:

    • 互斥量, 采用互斥对象机制,只有拥有互斥对象的线程才有访问公共资源的权限。因为互斥对象只有一个,所以可以保证公共资源不会被多个线程同时访问。
    • 信号量,允许同一时刻多个线程来访问同一资源,但是需要控制同一时刻访问此资源的最大线程数量。
    • 事件,通过通知操作的方式来保持多线程同步,还可以方便实现多线程优先级的比较作。事件为内核对象
    • 临界区,任意时刻只运行一个线程,其余线程阻塞,属于进程维护

    进程同步机制:

    • 信号量PV操作
    • 管程
    • 硬件同步

    线程通信:

    • 锁,互斥锁,读写锁,条件变量
    • 信号量
    • 信号

    线程间的通信主要用于线程同步,故无用于数据交换的通信机制。

    进程通信:

    • 管道,半双工,数据单向流动,且只能在父子进程间使用
    • 有名管道,打破只能父子进程的限制
    • 信号量,锁,主要用于同步与互斥
    • 消息队列,由消息组成的链表,消息队列克服了信号传递信息少,管道只能承载无格式字节流以及缓冲区大小受限等缺点。
    • 信号,用于通知接收进程某一事件发生
    • 共享内存,由一个进程创建,多个进程都可以访问
    • 套接字
  2. 主要采用B+Tree实现。MyISAM的数据文件与索引文件分离,InnoDB数据文件本身就是索引文件。

    image-20200304110325347

    image-20200304110341695

    应在这些情况下加索引更优:

    • 主键上
    • 经常搜索的列上,经常需要排序的列上
    • 外键上,加快连接速度
    • 经常需要条件判断(where)的列上,加快条件判断的速度
  3. 强引用,软引用,弱引用,虚引用

    • 强引用,创建一个对象并把该对象赋给一个引用变量 Object o = new Object();

    • 软引用,内存空间足够的情况下不会回收,内存不够了才会回收;可以防止内存泄漏,提高程序健壮性;一旦SoftReference保存了对一个Java对象的软引用后,在垃圾线程对 这个Java对象回收前,SoftReference类所提供的get()方法返回Java对象的强引用。

    • 弱引用,用来描述非必须对象

      image-20200304115050154

      使用WeakReference,第二次输出null

    • 虚引用,

  4. OSI

    • 物理层:以二进制数据形式在物理媒体上传输数据。
    • 数据链路层:传输有地址的帧以及有错误检测功能。
    • 网络层:为数据包选择路由。
    • 传输层:提供端对端的接口。
    • 会话层:解除或建立与别的接点的联系。
    • 表示层:数据的表示、压缩和加密 
    • 应用层:文件传输,电子邮件,文件服务,虚拟终端。

    TCP/IP

    • 网络接口层:对实际的网络媒体的管理,定义如何使用实际网络(如Ethernet、Serial Line等)来传送数据。
    • 网络层:负责提供基本的数据封包传送功能,让每一块数据包都能够到达目的主机(但不检查是否被正确接收)。 
    • 传输层:提供了节点间的数据传送服务,如传输控制协议(TCP)、用户数据报协议(UDP)等,TCP和UDP给数据包加入传输数据并把它传输到下一层中,这一层负责传送数据,并且确定数据已被送达并接收。
    • 应用层:应用程序间沟通的层,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。

    交换机位于数据链路层,路由器位于网络层