mnv*_*mnv 7 php linux pthreads
我正在尝试使用pthreads进行多线程处理.我正在用构造函数创建池.第一个参数是Workers的数量.
$pool = new Pool(8, 'WebWorker');
Run Code Online (Sandbox Code Playgroud)
我想自动检测处理器核心数.像这样的东西:
$pool = new Pool(get_processor_cores_number(), 'WebWorker');
Run Code Online (Sandbox Code Playgroud)
如何使用PHP?
如果服务器是 Linux 机器,您可以使用以下代码段来完成:
$ncpu = 1;
if(is_file('/proc/cpuinfo')) {
$cpuinfo = file_get_contents('/proc/cpuinfo');
preg_match_all('/^processor/m', $cpuinfo, $matches);
$ncpu = count($matches[0]);
}
Run Code Online (Sandbox Code Playgroud)
你可以做类似的事情,当然你的服务器应该在linux中:
function get_processor_cores_number() {
$command = "cat /proc/cpuinfo | grep processor | wc -l";
return (int) shell_exec($command);
}
Run Code Online (Sandbox Code Playgroud)
您将执行shell命令,然后将其强制转换为int.
如果有人正在寻找一个简单的函数来获取Windows和Linux两个操作系统的总 CPU 内核。
function get_processor_cores_number() {
if (PHP_OS_FAMILY == 'Windows') {
$cores = shell_exec('echo %NUMBER_OF_PROCESSORS%');
} else {
$cores = shell_exec('nproc');
}
return (int) $cores;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3036 次 |
| 最近记录: |