Ciao a tutti,
apro questa discussione perchè sono in difficoltà sulla gestione dei Thread. Nel senso che non riesco a trovare una guida dove spieghi decentemente come utilizzare al meglio i THREAD in php.
Inoltre navigando su internet sono riuscito a trovare degli esempi di codice dove illustravano come usarli e che classe dovessi implementare.... Ma niente sembra che non funzioni....
Adesso vi posto un po di codice che ho creato.
Questo è il codice della mia pagina index.php.Codice PHP:<?php
require_once 'thread/Thread.php';
include("connessione/ConfigurazioneDataBase.php");
session_start();
if(isset($_SESSION['condizione'])){
$condizione = $_SESSION['condizione'];
}
$azione = "";
if(isset($_REQUEST['azione'])){
$azione = $_REQUEST['azione'];
}
$stato = false;
?>
<html>
<head>
<title>Schelutore</title>
<script type='text/javascript' src='js/prototype.js'></script>
</head>
<body>
<h2 align="center">Chat Server</h2>
<table align="center">
<tr>
<td>[url="index.php?azione=avviaServer"]Avvio Server[/url]
<td>[url="index.php?azione=stopServer"]Stop Server[/url]
</tr>
</table>
<?php
$thread = new Thread('controlloUtenti');
if($azione == "avviaServer"){
echo "sono dentro";
$file = fopen("log/log.txt", "a+");
fwrite($file, "La scelta è ".$azione."\n");
$thread->start(1,10);
while ($thread->isAlive()){
echo "sono dentro 1";
$stato = true;
$file = fopen("log/log.txt", "a+");
fwrite($file, "Lo stato applicativo è true \n");
}
}else{
$arrestoProcesso = $thread->stop(1,true);
$file = fopen("log/log.txt", "a+");
fwrite($file, "Lo stato applicativo è ".$arrestoProcesso."\n");
}
function controlloUtenti(){
$connessione = new ConfigurazioneDataBase();
$db = $connessione->connetti();
$azione = "";
$query = "select ospite.id_ospite,ospite.dataValidita,ospite.nickname,chat.id_channel from tbl_ospiti as ospite, tbl_chat as chat where ospite.attivo = true and chat.id_ospite = ospite.id_ospite GROUP BY ospite.id_ospite";
$resultSet = mysql_query($query, $db) or die (mysql_error());
$file = fopen("log/log.txt","a+");
fwrite($file, "Query eseguita");
sleep(1000);
}
?>
</body>
</html>
Adesso qualcuno mi sa dire come mai il Thread non parte? O meglio non funziona.....
Inoltre avrei una domanda da chiedere nel metodo ->stop() al suo interno che valori devono essere passati? O meglio che cosa dovrebbero indicare?
Grazie anticipatamente.

Rispondi quotando