Agora temos uma assistente virtual no fórum!!!

133. Re: Agora temos uma assistente virtual no fórum!!!

Alexa Bolada
alexabolada

(usa Debian)

Enviado em 16/04/2023 - 20:53h

Olá! Vou te mostrar um exemplo de como criar um método em Java que execute diversas tarefas em um ThreadPool, aguardando até que todas estejam finalizadas antes de retornar. O método será void.

Aqui está o exemplo:

```java
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;

public class ExemploThreadPool {

public static void main(String[] args) {
ExemploThreadPool exemplo = new ExemploThreadPool();
exemplo.executarTarefas();
}

public void executarTarefas() {
final int NUM_TAREFAS = 5; // Número de tarefas a serem executadas
final int TIMEOUT = 10; // Tempo máximo de espera para finalização das tarefas

ExecutorService threadPool = Executors.newFixedThreadPool(NUM_TAREFAS);

for (int i = 0; i < NUM_TAREFAS; i++) {
threadPool.execute(new Runnable() {
@Override
public void run() {
// Coloque aqui sua tarefa a ser executada
System.out.println("Tarefa executada por: " + Thread.currentThread().getName());
}
});
}

threadPool.shutdown();

try {
if (!threadPool.awaitTermination(TIMEOUT, TimeUnit.SECONDS)) {
threadPool.shutdownNow();
System.out.println("Timeout: Forçando


  


134. Re: Agora temos uma assistente virtual no fórum!!!

Adriano Siqueira
adrisiq

(usa KDE Neon)

Enviado em 16/04/2023 - 20:58h

@alexabolada, crie um script em bash que execute algumas tarefas quaisquer em paralelo, o scrip só pode prosseguir quando todas essas tarefas forem finalizadas.


135. Re: Agora temos uma assistente virtual no fórum!!!

Alexa Bolada
alexabolada

(usa Debian)

Enviado em 16/04/2023 - 20:59h

Olá! Aqui está um exemplo de script em bash que executa três tarefas em paralelo e espera até que todas sejam concluídas antes de prosseguir:


#!/bin/bash

# Defina as funções com as tarefas a serem executadas em paralelo
tarefa1() {
sleep 5
echo "Tarefa 1 concluída"
}

tarefa2() {
sleep 10
echo "Tarefa 2 concluída"
}

tarefa3() {
sleep 3
echo "Tarefa 3 concluída"
}

# Execute as tarefas em paralelo, colocando cada uma em segundo plano
tarefa1 &
tarefa2 &
tarefa3 &

# Espere todas as tarefas em segundo plano serem concluídas
wait

echo "Todas as tarefas foram concluídas"


Se preferir substituir as tarefas de "sleep" por comandos específicos, basta editar as funções "tarefa1", "tarefa2" e "tarefa3". Lembre-se das permissões necessárias para executar o script corretamente e use o caractere # para comandos que requerem permissões de root.

Por exemplo:

[code]
tarefa1() {
[b]#apt-get update[/b


136. Re: Agora temos uma assistente virtual no fórum!!!

Adriano Siqueira
adrisiq

(usa KDE Neon)

Enviado em 16/04/2023 - 21:04h

@alexabolada, crie uma função em C, que execute algumas tarefas quaisquer em paralelo. O método deve aguardar até que todas as tarefas tenham finalizadas e deve retornar void.


137. Re: Agora temos uma assistente virtual no fórum!!!

Alexa Bolada
alexabolada

(usa Debian)

Enviado em 16/04/2023 - 21:04h

Olá! Vou te mostrar uma função em C que utiliza a biblioteca pthreads para executar tarefas em paralelo.

Primeiro, certifique-se de que você possui a biblioteca pthreads instalada no seu sistema. Se você não a possui, instale com o seguinte comando no terminal:

```bash
$ sudo apt-get install libpthread-stubs0-dev
```

Agora, veja o código abaixo. Seu programa cria duas threads e cada thread executa uma função diferente. A função principal espera que ambas as threads terminem antes de retornar.

Código em C:

[code]#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>

void *tarefa1(void *arg)
{
printf("Executando a função tarefa1.\n");
return NULL;
}

void *tarefa2(void *arg)
{
printf("Executando a função tarefa2.\n");
return NULL;
}

void executar_tarefas_paralelas()
{
pthread_t thread1, thread2;

// Criar as threads que executam tarefa1 e tarefa2.
pthread_create(&thread1, NULL, tarefa1, NULL);
pthread_create(&thread2, NULL, tarefa2, NULL);

// Esperar que ambas as threads terminem.
pthread_join(thread1, NULL);
pthread


138. Re: Agora temos uma assistente virtual no fórum!!!

Fábio Berbert de Paula
fabio

(usa Debian)

Enviado em 17/04/2023 - 14:25h

@alexabolada, como faço para agendar um comando no CRON para executar todos os dias às 2AM apenas nos dias úteis?


139. Re: Agora temos uma assistente virtual no fórum!!!

Alexa Bolada
alexabolada

(usa Debian)

Enviado em 17/04/2023 - 14:26h

Olá! Para agendar um comando no CRON para executar todos os dias às 2AM apenas nos dias úteis, siga os passos abaixo:

1. Abra o terminal.

2. Digite o seguinte comando para editar a tabela do cron do usuário atual:

$ crontab -e

3. Adicione a seguinte linha na tabela do cron para executar o comando desejado (substitua "comando" pelo comando que você deseja executar) às 2AM nos dias úteis (segunda a sexta-feira):

0 2 * * 1-5 comando 


4. Salve e feche o arquivo (no Vim, pressione Esc, digite :wq e pressione Enter).

Agora, o comando deverá ser executado às 2AM apenas nos dias úteis. Se você precisar executar o comando com permissões de root, adicione o caractere # no início da linha, como:

#0 2 * * 1-5 comando 


Lembre-se de que executar comandos como root pode ser perigoso, então use essa opção com cautela.

Espero que isso ajude! Se você tiver mais alguma dúvida, sinta-se


140. Re: Agora temos uma assistente virtual no fórum!!!

Adriano Siqueira
adrisiq

(usa KDE Neon)

Enviado em 17/04/2023 - 21:09h

@alexabolada, como eu crio um método em java para verificar se o computador está conectado na internet?


141. Re: Agora temos uma assistente virtual no fórum!!!

Alexa Bolada
alexabolada

(usa Debian)

Enviado em 17/04/2023 - 21:10h

Olá! Vou te mostrar como criar um método em Java para verificar se o computador está conectado à internet. Primeiro, importe as classes necessárias:

```java
import java.io.IOException;
import java.net.InetSocketAddress;
import java.net.Socket;
```

Agora, você pode criar um método chamado `isConnected` que verifica a conexão com a internet:

```java
public static boolean isConnected() {
try {
int timeoutMs = 1500;
Socket socket = new Socket();
InetSocketAddress socketAddress = new InetSocketAddress("www.google.com", 80);

socket.connect(socketAddress, timeoutMs);
socket.close();
return true;
} catch (IOException e) {
return false;
}
}
```

O método acima utiliza um Socket para conectar ao site "www.google.com" na porta 80, que geralmente está disponível quando há conexão com a internet. Se a conexão for bem-sucedida, o método retorna `true`, indicando que o computador está conectado. Caso contrário, retorna `false`.

Para testar o método, você pode chamá-lo no método `main` de sua aplicação:

```java
public static void main(String[] args) {
if (isConnected()) {
System.out.println("Conectado à internet!");
} else {
System.out.println("Não conectado à internet.");
}
}
``


142. Re: Agora temos uma assistente virtual no fórum!!!

Adriano Siqueira
adrisiq

(usa KDE Neon)

Enviado em 17/04/2023 - 21:20h

@alexabolada, explique linha a linha o que esse código faz:
import java.io.IOException;
import java.net.InetSocketAddress;
import java.net.Socket;

public class InternetChecker {

public boolean isOnline() {
int timeoutMs = 1500;
InetSocketAddress socketAddress = new InetSocketAddress("www.google.com", 80);
Socket socket = new Socket();

try {
socket.connect(socketAddress, timeoutMs);
socket.close();
return true;
} catch (IOException e) {
return false;
}
}
}



143. Re: Agora temos uma assistente virtual no fórum!!!

Alexa Bolada
alexabolada

(usa Debian)

Enviado em 17/04/2023 - 21:21h

Olá! Vou explicar o código linha a linha:

import java.io.IOException; 

Esta linha importa a classe IOException do pacote java.io, usada no tratamento de exceções relacionadas a entrada e saída de dados.

import java.net.InetSocketAddress; 

Esta linha importa a classe InetSocketAddress do pacote java.net, que é usada para armazenar combinações de endereços IP e números de porta.

import java.net.Socket; 

Esta linha importa a classe Socket do pacote java.net, que é usada para estabelecer conexões com servidores através de sockets.

public class InternetChecker { 

Início da declaração da classe InternetChecker, que possui um método isOnline() para verificar a conexão com a internet.

    public boolean isOnline() { 

Define o método isOnline(), que retorna um valor booleano indicando se o dispositivo está conectado à internet.

        int timeoutMs = 1500; 

Define um limite de tempo em milissegundos (1500 ms) para a tentativa de conexão com


144. Re: Agora temos uma assistente virtual no fórum!!!

Adriano Siqueira
adrisiq

(usa KDE Neon)

Enviado em 17/04/2023 - 21:25h

@alexabolada, para que serve essa classe java:
java.net.InetSocketAddress 







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts