Memory

Swoole�ṩ��6���ڴ������ģ�飬�ڶ���̱���п��԰�������Աʵ��һЩ���������

Lockʾ����

$lock = new swoole_lock(SWOOLE_MUTEX);
echo "[Master]create lock\n";
$lock->lock();
if(pcntl_fork() > 0) 
{
	sleep(1);
	$lock->unlock();
} 
else
{
	echo "[Child] Wait Lock\n";
	$lock->lock();
	echo "[Child] Get Lock\n";
	$lock->unlock();
	exit("[Child] exit\n");
}
echo "[Master]release lock\n";
unset($lock);
sleep(1);
echo "[Master]exit\n";

Bufferʾ����

$buffer = new swoole_buffer;
$buffer->append(str_repeat("A", 10));
$buffer->append(str_repeat("B", 20));
$buffer->append(str_repeat("C", 30));

var_dump($buffer);
echo $buffer->substr(0, 10, true)."\n";
echo $buffer->substr(0, 20, true)."\n";
echo $buffer->substr(0, 30)."\n";
$buffer->clear();

echo $buffer->substr(0, 10, true)."\n";
var_dump($buffer);
sleep(1);

Tableʾ����

$table = new swoole_table(1024);
$table->column('name', swoole_table::TYPE_STRING, 64);
$table->column('id', swoole_table::TYPE_INT, 4);       //1,2,4,8
$table->column('num', swoole_table::TYPE_FLOAT);
$table->create();


$table->set('swoole@qq.com', array('id' => 145, 'name' => 'swoole1', 'num' => 3.1415));
$table->set('123456@qq.com', array('id' => 358, 'name' => "swoole2", 'num' => 3.1415));
$table->set('hello@qq.com', array('id' => 189, 'name' => 'swoole3', 'num' => 3.1415));

foreach($table as $value)
{
    var_dump($value);
}

echo "======================= Total Elements: {$table->count()} ============================\n";
$table->del('123456@qq.com'); // delete a exist element
foreach($table as $value)
{
    var_dump($value);
}
echo "======================= Total Elements: {$table->count()} ============================\n";

$ret = $table->del('a invalid key'); // delete a invalid element
var_dump($ret);
foreach($table as $value)
{
    var_dump($value);
}
echo "======================= Total Elements: {$table->count()} ============================\n";