


Explication détaillée des exemples de programmation multi-processus PHP
Cet article vous présente principalement la méthode de programmation multi-processus PHP. Il analyse plus en détail le concept, l'utilisation, les fonctions associées et les compétences d'utilisation de la programmation multi-processus PHP. J'espère que les amis dans le besoin pourront s'y référer. peut aider tout le monde.
Les détails sont les suivants :
Première étape :
commande $ php -m pour vérifier si php a installé les extensions pcntl et posix, si non, installez-les
Scénarios d'utilisation :
1 Pour effectuer un grand nombre d'opérations réseau chronophages
2. , et le système dispose de plusieurs processeurs. Afin d'offrir aux utilisateurs une expérience plus rapide, divisez une tâche en plusieurs petites tâches et enfin fusionnez-les.
Fonctions communes pour plusieurs processus :
pcntl_alarm — Définir un signal de réveil pour le processus
pcntl_errno — Alias pcntl_strerror
pcntl_exec —Exécuter le programme spécifié dans l'espace de processus actuel
pcntl_fork—Créer un processus enfant et générer une branche (processus enfant) à la position actuelle du processus actuel. Annotation : fork crée un processus enfant.Le processus parent et le processus enfant continuent de s'exécuter à partir de la position fork. La différence est que pendant l'exécution du processus parent, la valeur de retour de fork est le numéro du processus enfant, tandis que l'enfant. le processus obtient 0.
pcntl_get_last_error — Récupère le numéro d'erreur défini par la dernière fonction pcntl qui a échoué
pcntl_getpriority — Récupère la priorité de n'importe quel processus
pcntl_setpriority — Modifier la priorité de n'importe quel processus
pcntl_signal_dispatch — Appeler un gestionnaire en attente d'un signal
pcntl_signal — Installer un gestionnaire de signal
pcntl_sigprocmask — Définir ou récupérer le signal de blocage
pcntl_sigtimedwait — Attente du signal avec mécanisme de délai d'attente
pcntl_sigwaitinfo — Attendre le signal
pcntl_strerror — Récupérer le système message d'erreur associé au errno donné
pcntl_wait — Attend ou renvoie l'état du processus enfant de fork
pcntl_waitpid — Attend ou renvoie l'état du processus enfant de fork
pcntl_wexitstatus — Renvoie le code retour d'un processus enfant interrompu
pcntl_wifexited — Vérifie si le code d'état représente une sortie normale.
pcntl_wifsignaled — Vérifiez si le code d'état du processus enfant signifie qu'il a été interrompu en raison d'un signal
pcntl_wifstopped — Vérifiez si le processus enfant est actuellement arrêté
pcntl_wstopsig — Renvoie le signal qui provoque l'arrêt du processus enfant
pcntl_wtermsig — Renvoie le signal qui provoque l'interruption du processus enfant
Exemple 1 :
<?php //最早的进程,也是父进程 $parentPid = getmypid(); echo '原始父进程:' . $parentPid . PHP_EOL; //创建子进程,返回子进程id $pid = pcntl_fork(); if( $pid == -1 ){ exit("fork error"); } //pcntl_fork 后,父进程返回子进程id,子进程返回0 echo 'ID : ' . $pid . PHP_EOL; if( $pid == 0 ){ //子进程执行pcntl_fork的时候,pid总是0,并且不会再fork出新的进程 $mypid = getmypid(); // 用getmypid()函数获取当前进程的PID echo 'I am child process. My PID is ' . $mypid . ' and my fathers PID is ' . $parentPid . PHP_EOL; } else { //父进程fork之后,返回的就是子进程的pid号,pid不为0 echo 'Oh my god! I am a father now! My childs PID is ' . $pid . ' and mine is ' . $parentPid . PHP_EOL; } $aa = shell_exec("ps -af | grep index.php"); echo $aa;
Exemple 2 : Ouvrir plusieurs processus enfants pour éviter l'inondation de forks
<?php //最早的进程,也是父进程 $parentPid = getmypid(); echo '原始父进程:' . $parentPid . PHP_EOL; //开启十个子进程 for($i = 0; $i < 10; $i++) { $pid = pcntl_fork(); if($pid == -1) { echo "Could not fork!\n"; exit(1); } //子进程 if(!$pid) { //child process workspace echo '子进程:' . getmypid() . PHP_EOL; exit(); //子进程逻辑执行完后,马上退出,以免往下走再fork子进程,不好控制 } else { echo '父进程:' . getmypid() . PHP_EOL; } } echo getmypid() . PHP_EOL; $aa = shell_exec("ps -af | grep index.php"); echo $aa;
Recommandations associées :
Exemples de code sur la programmation multi-processus en php
Pratique de programmation multi-processus côté serveur PHP_Tutoriel PHP
Exemples de programmation multi-processus PHP
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

PHP 8.4 apporte plusieurs nouvelles fonctionnalités, améliorations de sécurité et de performances avec une bonne quantité de dépréciations et de suppressions de fonctionnalités. Ce guide explique comment installer PHP 8.4 ou mettre à niveau vers PHP 8.4 sur Ubuntu, Debian ou leurs dérivés. Bien qu'il soit possible de compiler PHP à partir des sources, son installation à partir d'un référentiel APT comme expliqué ci-dessous est souvent plus rapide et plus sécurisée car ces référentiels fourniront les dernières corrections de bogues et mises à jour de sécurité à l'avenir.

Travailler avec la base de données dans CakePHP est très simple. Nous comprendrons les opérations CRUD (Créer, Lire, Mettre à jour, Supprimer) dans ce chapitre.

Pour travailler avec la date et l'heure dans cakephp4, nous allons utiliser la classe FrozenTime disponible.

Pour travailler sur le téléchargement de fichiers, nous allons utiliser l'assistant de formulaire. Voici un exemple de téléchargement de fichiers.

CakePHP est un framework open source pour PHP. Il vise à faciliter grandement le développement, le déploiement et la maintenance d'applications. CakePHP est basé sur une architecture de type MVC à la fois puissante et facile à appréhender. Modèles, vues et contrôleurs gu

Le validateur peut être créé en ajoutant les deux lignes suivantes dans le contrôleur.

Se connecter à CakePHP est une tâche très simple. Il vous suffit d'utiliser une seule fonction. Vous pouvez enregistrer les erreurs, les exceptions, les activités des utilisateurs, les actions entreprises par les utilisateurs, pour tout processus en arrière-plan comme cronjob. La journalisation des données dans CakePHP est facile. La fonction log() est fournie

Visual Studio Code, également connu sous le nom de VS Code, est un éditeur de code source gratuit – ou environnement de développement intégré (IDE) – disponible pour tous les principaux systèmes d'exploitation. Avec une large collection d'extensions pour de nombreux langages de programmation, VS Code peut être c
