1. 虚拟内存作用是什么

  • 它把主存看作为一个存储在硬盘上的虚拟地址空间的高速缓存,并且只在主存中缓存活动区域(按需缓存)。
  • 它为每个进程提供了一个一致的地址空间,从而降低了程序员对内存管理的复杂性。
  • 它还保护了每个进程的地址空间不会被其他进程破坏。

2. 异步和非阻塞的区别

  • 异步和非阻塞的区别:
    • 异步:调用在发出之后,这个调用就直接返回,不管有无结果;异步是过程。
    • 非阻塞:关注的是程序在等待调用结果(消息,返回值)时的状态,指在不能立刻得到结果之前,该调用不会阻塞当前线程。
  • 阻塞与非阻塞的区别:

    • 阻塞:阻塞调用是指调用结果返回之前,当前线程会被挂起,一直处于等待消息通知,不能够执行其他业务,函数只有在得到结果之后才会返回。
    • 非阻塞:非阻塞和阻塞的概念相对应,指在不能立刻得到结果之前,该函数不会阻塞当前线程,而会立刻返回。
  • 同步与异步是对应的,它们是线程之间的关系,两个线程之间要么是同步的,要么是异步的。

  • 阻塞与非阻塞是对同一个线程来说的,在某个时刻,线程要么处于阻塞,要么处于非阻塞。
  • 阻塞是使用同步机制的结果,非阻塞则是使用异步机制的结果。

3 单台服务器上的并发TCP连接数可以有多少

  • 文件句柄限制
    • 每一个tcp连接都要占一个文件描述符
  • 端口号范围限制
    • 操作系统上端口号1024以下是系统保留的,从1024-65535是用户使用的
  • 实际上由于Linux中一切都是文件,Linux允许打开的文件的句柄数的上限为65535.
  • 参考

4 多个线程读,一个线程写一个int32会不会有问题,int64呢

  • 要看数据总线的位数,32位的话写int32没问题,int64就有问题)

1. Linux 查看程序是否允许

  • ps -ef | grep xxx 如能看到信息则活着

  • 2. top 命令解读