1.关于进程和线程,下面说法正确的是
线程是资源分配和拥有的单位
线程和进程都可并发执行
在linux系统中,线程是处理器调度的基本单位
线程的粒度小于进程,通常多线程比多进程并发性更高
不同的线程共享相同的栈空间
2.轮询任务调度与抢占式任务调度的区别?
抢占式调度优点是其简洁性,它无需记录当前所有连接的状态,所以它是一种无状态调度
轮记录当询调度优点是其简洁性,它无需前所有连接的状态,所以它是一种无状态调度
轮询调度实现相对较复杂
抢占式调度实现相对较复杂
原理:
轮询调度:每一次把来自用户的请求轮流分配给内部中的服务器,从1开始,直到N(内部服务器个数),然后重新开始循环。只有在当前任务主动放弃CPU控制权的情况下(比如任务挂起),才允许其他任务(包括高优先级的任务)控制CPU。其优点是其简洁性,它无需记录当前所有连接的状态,所以它是一种无状态调度。但不利于后面的请求及时得到响应。
抢占式调度:允许高优先级的任务打断当前执行的任务,抢占CPU的控制权。这有利于后面的高优先级的任务也能及时得到响应。但实现相对较复杂且可能出现低优先级的任务长期得不到调度。
3.无锁化编程有哪些常见方法?