3° Trabalho
Erik Tronkos
Pedro Boueke
UFRJ - 2016.05.19
UFRJ - 2016.05.19
Intel(R) Core(TM) i7-3632QM CPU @ 2.20GHz
Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.
Multithreading fácil
func HelloGo() {
fmt.Println("Hello Go!") }
func main(){
for i := 0; i < 5; i++ {
go HelloGo()
}
}
Hello Go!
Hello Go!
Hello Go!
Hello Go!
Hello Go!
service Operador {
rpc rpcLog (Numbers) returns (Result) {}
rpc rpcSqrt (Numbers) returns (Result) {}
rpc rpcPower (NumbersPower) returns (Result) {}
}
message Numbers {
bytes array = 1;
int32 size = 2;
}
message NumbersPower {
bytes array = 1;
int32 size = 2;
int32 power = 3;
}
message Result {
bytes array = 1;
}
func (s *OperadorServer) RpcLog(ctx context.Context, in *pb.Numbers) (*pb.Result, error)
c.RpcLog(context.Background(), &pb.Numbers{Array: buffer.Bytes(), Size: len(slice)}
Cliente
Servidor
service Operador {
rpc rpcLog (Numbers) returns (Result) {}
rpc rpcSqrt (Numbers) returns (Result) {}
rpc rpcPower (NumbersPower) returns (Result) {}
}
message Numbers {
bytes array = 1;
int32 size = 2;
}
message NumbersPower {
bytes array = 1;
int32 size = 2;
int32 power = 3;
}
message Result {
bytes array = 1;
}
const cluster = require('cluster'); if (cluster.isMaster) { console.log('I am master'); cluster.fork(); } else if (cluster.isWorker) { console.log(`I am worker #${cluster.worker.id}`); }
var mutex = locks.createMutex();
Comunicação por mensagens interprocesso
Master
Worker
grant
request
release