PHP 7.1.0 Released

The Thread class

(No version information available, might only be in SVN)

Wstęp

An implementation of a Thread should extend this declaration, implementing the run method. When the start method of that object is called, the run method code will be executed in separate Thread.

Krótki opis klasy

Thread {
/* Metody */
final public long getCreatorId ( void )
final public long getThreadId ( void )
final public boolean isJoined ( void )
final public boolean isRunning ( void )
final public boolean isStarted ( void )
final public boolean isWaiting ( void )
final public boolean join ( void )
final public boolean notify ( void )
abstract public void run ( void )
final public boolean start ( void )
final public boolean wait ([ long $timeout ] )
}

Spis treści

add a note add a note

User Contributed Notes 3 notes

up
26
german dot bernhardt at gmail dot com
2 years ago
<?php

class workerThread extends Thread {
public function
__construct($i){
 
$this->i=$i;
}

public function
run(){
  while(
true){
   echo
$this->i;
  
sleep(1);
  }
}
}

for(
$i=0;$i<50;$i++){
$workers[$i]=new workerThread($i);
$workers[$i]->start();
}

?>
up
5
german dot bernhardt at gmail dot com
8 months ago
<?php
# ERROR GLOBAL VARIABLES IMPORT

$tester=true;

function
tester(){
global
$tester;
var_dump($tester);
}

tester(); // PRINT -> bool(true)

class test extends Thread{
public function
run(){
  global
$tester;
 
tester(); // PRINT -> NULL
}
}
$workers=new test();
$workers->start();

?>
up
-1
312036773 at qq dot com
11 months ago
<?php
class STD extends Thread{
    public function
put(){
       
       
$this->synchronized(function(){
            for(
$i=0;$i<7;$i++){

   
printf("%d\n",$i);
   
$this->notify();
    if(
$i < 6)
   
$this->wait();
    else
        exit();
   
sleep(1);
}
        });

    }

        public function
flush(){
       
$this->synchronized(function(){
            for(
$i=0;$i<7;$i++){
   
flush();
   
$this->notify();
    if(
$i < 6)
   
$this->wait();
    else
        exit();
    }
});
}
}

class
A extends Thread{
    private
$std;
    public function
__construct($std){
       
$this->std = $std;
    }
    public function
run(){
       
$this->std->put();
    }
}

class
B extends Thread{
    private
$std;
    public function
__construct($std){
       
$this->std = $std;
    }
    public function
run(){
       
$this->std->flush();
    }
}
ob_end_clean();
echo
str_repeat(" ", 1024);
$std = new STD();
$ta = new A($std);
$tb = new B($std);
$ta->start();
$tb->start();
To Top