CPU的运行队列统计:在Linux里,一个进程,对于线程来说要不在运行,要不在阻塞。
CPU怎么执行线程:
CPU只会运行处于runnable状态的线程,不是线程越多CPU就越忙
一个阻塞的进程可能是在等着一些io的数据处理,或者等待一些系统的调用。
runnable(可运行)状态,意味着他正在和其他数据运行状态的进程竞争CPU的时间,谁的优先级越高CPU给他的时间就稍微多点。怎么知道优先级呢,在时间上会有点区别。
运行状态的进程,不一定正在使用CPU,如5个在排队。同一时刻可能只有一个人在用我这个资源。Linux调调度器会决定去运行哪个进程。他会从运行状态的进程列表里面去提取他要运行的哪些进程。
队列:当这些进程是运行状态,等待CPU处理的任务数就叫运行队列。任务越多队列越长,运行队列越长表示我的压力机就越大。
队列多少比较合适呢:在任何一个时刻CPU的一个核同一时刻只能处理一个线程。如果CPU有4个核,同一时刻处理4个任务,这个队列最好是4.。队列最好等于内核个数,最好不要超过你内核个数的3倍。
队列包含正在得到CPU运行的那个线程。