PHP thread security and Multithreading

Source: Internet
Author: User
Tags zts
3. add extension php. add extensionpthreads to ini. so; if you have installed php before, then usrlocalphp-ztsbinphp-I | grepphp. the ini statement helps you find php. ini location. Find the location of php. ini and modify it to add extpthreads. so, because I already have php, and now the newly installed php

3. add extension php. ini added: extension = pthreads. so; if you have installed php before,/usr/local/php-zts/bin/php-I | grep php. the ini statement helps you find php. ini location. Find the location of php. ini and modify it to add ext = pthreads. so, because I already have php, and now the newly installed php

3. Add Extension

Php. ini added: extension = pthreads. so;

If you have installed php before, use the/usr/local/php-zts/bin/php-I | grep "php. ini" statement to locate php. ini.

Find php. ini location, modify it to ext = pthreads. so is added in, because I already have php, and now the newly installed php. if the INI file does not exist, I got a pass ......


4. Check whether the extension is successfully installed.

/Usr/local/php5.5.12-zts/bin/php-I | grep-I pthreads




Test code:

/*

* Sharing symbols 101

* @NOTE Thread::fetch was never included in a release and was superceeded by object handlers

* pthreads allows read access to thread data from any context

pthreads allows write access to thread data from any context

carry on reading ...

work in progress ...

*/

classTestObject {

public$val;

}

classFetchingextendsThread {

publicfunctionrun(){

/*

* of course ...

*/

$this->sym = 10245;

$this->arr = array(

"1","2","3"

);

echo'6'.chr(10);

/*

* objects do work, no preparation needed ...

* read/write objects isn't finalized ..

* so do the dance to make it work ...

*/

$obj=newTestObject();

$obj->val = "testval";

$this->obj = $obj;

echo'7'.chr(10);

/*

* will always work

*/

$this->objs = serialize($this->obj);

echo'8'.chr(10);

/*

* nooooooo

*/

$this->res = fopen("php://stdout","w");

echo'9'.chr(10);

/*

* tell the waiting process we have created symbols and fetch will succeed

*/

$this->synchronized(function(){

$this->notify();

});

echo'10'.chr(10);

/* wait for the process to be finished with the stream */

$this->synchronized(function(){

$this->wait();

});

echo'11'.chr(10);

}

}

echo'0'.chr(10);

$thread=newFetching();

echo'1'.chr(10);

$thread->start();

// Sleep (1); it's strange that you cannot work normally after adding this.

echo'2'.chr(10);

$thread->synchronized(function($me){

echo'3'.chr(10);

$me->wait();

echo'4'.chr(10);

},$thread);

echo'5'.chr(10);

/*

* we just got notified that there are symbols waiting

*/

foreach(array("sym","arr","obj","objs","res")as$symbol){

printf("\$thread->%s: ",$symbol);

$fetched=$thread->$symbol;

if($fetched) {

switch($symbol){

/*

* manual unserialize

*/

case"objs":

var_dump(unserialize($fetched));

break;

default: var_dump($fetched);

}

}

printf("\n");

}

/* notify the thread so it can destroy resource */

$thread->synchronized(function($me){

$me->notify();

},$thread);

?>


Enter/usr/local/php-zts/bin/php Fetch. php In the command box.



The PHP script must be called to run if no output is provided directly on the webpage.


Reference:

Http://www.2cto.com/kf/201309/245093.html

Http://blog.csdn.net/crz03128/article/details/25954441


After compilation for a long time, make a record.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.