Если вы запустите процесс с помощью приложения Java (например, вызывая Runtime.exec()
или ProcessBuilder.start()
), у вас есть действительная ссылка Process
, и вы можете вызвать метод destroy()
в Process
, чтобы убить этот конкретный процесс.
Но имейте в виду, что если процесс, который вы вызываете, создает новые подпроцессы, они не могут быть завершены (см. http://bugs.sun.com/bugdatabase/view_bug.do?bug_id = 4770092 ).
С другой стороны, если вы хотите убить внешние процессы (которые вы не вызвали из своего Java-приложения), то одна вещь, которую вы можете сделать, - это позвонить O / Утилиты, которые позволяют вам это делать. Например, вы можете попробовать Runtime.exec()
в команде kill
в Unix / Linux и проверить значения возврата, чтобы убедиться, что приложение было убито или нет (0 означает успех, -1 означает ошибку). Но это, конечно же, сделает вашу платформу приложений зависимой.
Для второй части вы можете использовать анонимную функцию aka. функция замыкания
function flatten_multi_array_and_get_unique($multi)
{
$objTmp = (object) array('aFlat' => array());
array_walk_recursive($multi, function(&$v, $k, &$t){ $t->aFlat[] = $v; }, $objTmp);
$res = array_unique($objTmp->aFlat);
return $res;
}
Найти интересно? Читать дальше