table.cc

来自「linux的例子,就是下载后到自己的机子上去运行」· CC 代码 · 共 61 行

CC
61
字号
#include"Table.h"#include"system.h"#include"thread.h"Table::Table(int size){    tablesize = size;    number = 0;    table = new void*[size]();    lock = new Lock("table lock");}Table::~Table(){    delete table;    delete lock;}intTable::Alloc(void *object){    int i = -1;    lock->Acquire();    if( number < tablesize )    {  	while ( table[i] != NULL){	   ++i;	   currentThread->Yield();        }	table[i] = object;        ++number;    }    lock->Release();    return i;}void *Table::Get(int index){    void *pointer;    lock->Acquire();    pointer = table[index];    lock->Release();    return pointer;}voidTable::Release(int index){    void * pointer;    lock->Acquire();    if ( number > 0 ){	pointer = table[index];        if( pointer != NULL ) {	    --number;	    table[index] = NULL;	}    }    lock->Release();}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?