1. 虚拟内存作用是什么
- 它把主存看作为一个存储在硬盘上的虚拟地址空间的高速缓存,并且只在主存中缓存活动区域(按需缓存)。
- 它为每个进程提供了一个一致的地址空间,从而降低了程序员对内存管理的复杂性。
- 它还保护了每个进程的地址空间不会被其他进程破坏。
2. 异步和非阻塞的区别
- 异步和非阻塞的区别:
- 异步:调用在发出之后,这个调用就直接返回,不管有无结果;异步是过程。
- 非阻塞:关注的是程序在等待调用结果(消息,返回值)时的状态,指在不能立刻得到结果之前,该调用不会阻塞当前线程。
阻塞与非阻塞的区别:
- 阻塞:阻塞调用是指调用结果返回之前,当前线程会被挂起,一直处于等待消息通知,不能够执行其他业务,函数只有在得到结果之后才会返回。
- 非阻塞:非阻塞和阻塞的概念相对应,指在不能立刻得到结果之前,该函数不会阻塞当前线程,而会立刻返回。
同步与异步是对应的,它们是线程之间的关系,两个线程之间要么是同步的,要么是异步的。
- 阻塞与非阻塞是对同一个线程来说的,在某个时刻,线程要么处于阻塞,要么处于非阻塞。
- 阻塞是使用同步机制的结果,非阻塞则是使用异步机制的结果。
3 单台服务器上的并发TCP连接数可以有多少
- 文件句柄限制
- 每一个tcp连接都要占一个文件描述符
- 端口号范围限制
- 操作系统上端口号1024以下是系统保留的,从1024-65535是用户使用的
- 实际上由于Linux中一切都是文件,Linux允许打开的文件的句柄数的上限为65535.
- 参考
4 多个线程读,一个线程写一个int32会不会有问题,int64呢
- 要看数据总线的位数,32位的话写int32没问题,int64就有问题)