Ir ao conteúdo
  • Cadastre-se

Java Uso de Thread em Java


Posts recomendados

Olá, boa tarde

 

Preciso de ajuda com a criação de algumas classes em JAVA

 

6- Crie uma classe em JAVA para representar a Corretora. A classe Corretora deve ser uma Thread. A Corretora tem 4 ativos para venda, respectivamente A, B, C e D. A Corretora poderá no máximo fazer 1000 operações de compra e venda para o conjunto total de ativos. Para isso, a Corretora tem dois caixas apenas, Caixa 1 e Caixa 2. Os Caixas 1 e 2 só podem ser acessados por um Cliente a cada vez, isto é, enquanto um Cliente acessa um caixa, outro Cliente pode acessar o outro disponível. Os demais Clientes devem aguardar. Utilize o conceito de semáforo para controlar os acessos.
As operações de compra e venda devem ser registradas no Caixa Geral da Corretora. Para isso, deve-se registrar o momento que ocorreu a operação. Atenção: os arquivos de dados obtidos no MetaTrader5 dispõem de um timestamp (data/hora/minuto/milissegundo) e o seu respectivo valor/preço do ativo. Ao realizar a operação de compra ou venda de um ativo para um Cliente, utilize o timestamp do próprio ativo obtido no Metatrader5 para registrar a operação no Caixa Geral da Corretora. Isso poderá ser útil no batimento/conferência (reconciliação) das operações corretora X clientes.
Para compor os ativos da Corretora, ecolha livremente pelo menos 4 ativos diferentes no MetaTrader5 (nos passos anteriormente desenvolvidos 1 a 5). Lembre-se: no momento da seleção de dados pode-se escolher um intervalo de início e fim dos dados. Escolha o mesmo intervalo para todos os ativos. Não é obrigatório, mas facilita...
7- Crie uma classe em JAVA para representar os Clientes. A classe Cliente deve ser uma Thread. Cada Cliente tem um saldo limite para ser utilizado para aquisição e venda de ativos na Corretora. Para cada um dos Clientes, implemente os passos de análise de cenários apresentados anteriormente, bem como os indicadores de risco e volatilidade. Implemente critérios de compra (comprado) e venda (vendido) e utilize mecanismos de drawdown para controlar o risco.
8- No momento de execução de uma operação de drawdown, a Thread Cliente em questão poderá ter maior prioridade (10), voltando em seguida para a prioridade normal (5).
9- Os Clientes não podem realizar duas operações seguidas de compra/venda (comprado ou vendido) de um mesmo ativo. Por exemplo, ao fazer a compra do Ativo A, as únicas operações possíveis são: venda do Ativo A ou compra/venda (comprado ou vendido) de qualquer um dos Ativos B, C e D.
10- Cada Cliente deve no mínimo realizar 30 operações.
11- Ao realizar uma compra ou venda (comprado ou vendido), um Cliente deve aguardar (sleep) pelo menos 500ms (milissegundos) para realizar nova operação.
12- Créditos e débitos referentes às operações de compra ou venda (comprado ou vendido), ganhos ou perdas, de um Cliente devem ser registradas na sua própria conta-corrente, impactando no saldo.

trabalho.pdf

Link para o comentário
Compartilhar em outros sites

Qual sua dúvida exatamente?

 

Para que uma classe seja uma thread, ela precisa estender a classe Thread:

public class MinhaThread extends Thread {}

 

Por outro lado, se você deseja que sua classe seja executada dentro de uma thread, ela pode implementar a interface Runnable:

public class MeuRunnable implements Runnable {

    @Override
    public void run() {}
}

A thread se encarregará de chamar o método run.

 

 

Para usar cada uma delas, faça assim:

public class Exemplo {

    public static void main(String[] args) {
        exemploRunnable();
        exemploThread();
    }

    private static void exemploRunnable() {
        Thread thread = new Thread(new MeuRunnable());
        thread.start();
    }

    private static void exemploThread() {
        Thread thread = new MinhaThread();
        thread.start();
    }
}

 

 

 

Não estou familiarizado com o conceito de semáforos, mas na minha opinião seria mais fácil implementar os caixas como sendo os runnables, dessa forma seria possível usar o ExecutorService para controlar quantas threads seriam executadas simultaneamente.

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!