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 + -
显示快捷键?