Forneço ajuda em Java, C/C++, Python, C#, Delphi, VB.NET
+55 (062) 98553-6711
Forneço ajuda em PHP, Python, C#, Google Ads e SEO
+55 (062) 98243-1195

Você está aqui: Java ::: Dicas & Truques ::: Threads

Como usar o método yield() para parar a thread atual e ceder a CPU para outras threads

Quantidade de visualizações: 12890 vezes
Quando uma thread está sendo executada ela pode se oferecer para se mover para fora da CPU virtual e ceder seu tempo de execução para outras threads. Isso é feito com uma chamada ao método estático yield() da classe Thread.

Quando este método é chamado, a thread atual é movida do estado "executando" para o estado "pronta". Desta forma, o gerenciador de threads pode iniciar a execução das demais threads disputando o tempo da CPU. Veja um exemplo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

// criamos uma classe que servirá como thread
class MinhaThread implements Runnable{
  private String nome;  

  public MinhaThread(String nome){
    this.nome = nome;
  }   

  public void run(){
    for(int i = 1; i <= 20; i++){
      System.out.println(nome + ": " + i);

      if((i % 3 == 0) && (nome.equals("Thread 1"))){
        System.out.println(nome + " foi descansar um pouco");
        Thread.yield(); // cede o tempo de CPU para as demais threads        
      }
    }
  }
}

public class Estudos{
  public static void main(String[] args){
    // vamos criar duas threads
    MinhaThread mt1 = new MinhaThread("Thread 1");
    Thread t1 = new Thread(mt1);
    t1.start();    

    MinhaThread mt2 = new MinhaThread("Thread 2");
    Thread t2 = new Thread(mt2);
    t2.start();
  }
}

Ao executar este código você perceberá que a primeira thread cede o tempo da CPU, ou seja, se oferece para ser movida para fora da CPU virtual, a cada três valores impressos. Quando isso acontece a segunda thread é movida do estado "pronta" para o estado "executando". Note, contudo, que não há comportamente previsível em relação a uma thread ceder o tempo de execução para outra. É preciso, antes de tudo, nos inteirarmos da forma pela qual o gerenciador de threads escolhe qual a próxima thread a ser executada, se há considerações em relações à prioridades das threads, etc. Pode ainda acontecer de uma thread ceder seu tempo de execução e continuar executando, talvez pela ausência de outras threads no estado "prontas".

Link para compartilhar na Internet ou com seus amigos:

JavaScript ::: Dicas & Truques ::: Formulários

Como enviar um formulário via código - Enviar um formulário usando JavaScript - Como disparar o método submit() do form a partir de um link - Revisado

Quantidade de visualizações: 19373 vezes
Na maioria das páginas web, o formulário é enviado quando clicamos em um botão (o botão Enviar, por exemplo). Nesta dica mostrarei como é possível enviar um formulário clicando em um link, ou seja, disparando o método submit() do formulário HTML via programação mesmo.

Veja o código completo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

<html>
<head>
<title>Estudando JavaScript</title>
</head>
<body>
 
<form name="cadastro" action="http://www.google.com" method="get">
  <input type="text" name="nome">
</form>
 
<a href="javascript:{document.cadastro.submit();}">Enviar o Formulário</a>
 
</body>
</html>

Abra esta página no seu servidor web, clique no link e veja o resultado.


C# ::: Dicas & Truques ::: Sistema

Como retornar a capacidade do HD em MB ou GB em C# usando um objeto ManagementObject

Quantidade de visualizações: 8738 vezes
Nesta dica mostrarei como podemos usar um objeto ManagementObject para retornar o tamanho de um HD em MB ou GB usando a linguagem C#. No exemplo eu acessei o drive C, mas você pode usar qualquer um que esteja disponível na sua máquina.

Veja o código C# completo para o exemplo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

private void button2_Click(object sender, EventArgs e) {
  // não esqueça de importar
  // using System.Management;

  // vamos criar um novo objeto ManagementObject
  ManagementObject dispositivo =
    new ManagementObject("win32_logicaldisk.deviceid=\"C:\"");
  // vamos retornar o dispositivo
  dispositivo.Get();

  // agora vamos retornar o tamanho do HD
  double tam = Convert.ToDouble(dispositivo["Size"]);
      
  // convertemos para GB
  tam = tam / 1024 / 1024 / 1024;
  // e mostramos o resultado
  textBox1.Text = "O HD tem capacidade de " + tam + " GB";
}

Ao executar este código C# nós teremos o seguinte resultado:

O HD tem capacidade de 251,767574310303 GB

Se você quiser o tamanho do HD em MB, basta usar:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

tam = tam / 1024 / 1024;

Nos testes que fiz no Visual Studio 2019, não foi possível acessar o HD a partir de uma aplicação C# console, somente por meio de uma aplicação Windows Desktop. Veja a mensagem retornada:

System.PlatformNotSupportedException: 'System.Management currently is only supported for Windows desktop applications.'


Python ::: Desafios e Lista de Exercícios Resolvidos ::: Python Básico

Exercícios Resolvidos de Python - Como somar o primeiro e o último dígito de um número inteiro informado pelo usuário em Python

Quantidade de visualizações: 499 vezes
Pergunta/Tarefa:

Escreva um programa Python que pede para o usuário informar um número inteiro e mostre a soma do primeiro dígito com o último dígito. Atenção: você deve usar apenas os operadores matemáticos e a função log10().

Sua saída deverá ser parecida com:

Informe um número inteiro: 48763
A soma do primeiro e do último dígito é: 7
Resposta/Solução:

Veja a resolução comentada deste exercício usando Python:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

# vamos importar o módulo Math
import math

# método principal
def main():
  # vamos pedir para o usuário informar um número inteiro
  numero = int(input("Informe um número inteiro: "))
    
  # vamos obter a quantidade (-1) de dígitos no número informado
  quant = int(math.log10(numero))
  primeiro_digito = (int)(numero / pow(10, quant))
  ultimo_digito = numero % 10
  	
  # soma o primeiro e o último dígito
  soma = primeiro_digito + ultimo_digito
	
  # mostra o resultado
  print("A soma do primeiro e do último dígito é: {0}".format(soma))
  
if __name__== "__main__":
  main()



JavaScript ::: Dicas & Truques ::: Data e Hora

Como construir uma determinada data e hora usando o construtor do objeto Date do JavaScript

Quantidade de visualizações: 6651 vezes
Em algumas situações precisamos construir um objeto Date representando uma determinada data e hora. Para isso podemos usar o construtor deste objeto. Veja a sintáxe:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

new Date(year, month[, date[, h[, m[, s[, ms]]]]]);

Veja que temos que fornecer os argumemtos na ordem ano, mês, dia, horas, minutos, segundos e milisegundos. Apenas os argumentos para os parâmetros ano e mês são obrigatórios. Veja, por exemplo, como podemos construir a data 01/08/2010:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

<html>
<head>
<title>Estudos JavaScript</title>
</head>
<body>

<script type="text/javascript">
  // vamos construir a data 01/08/2010
  var data = new Date(2010, 7);

  // vamos exibir o resultado
  document.write("A data é: " + data); 
</script>

</body>
</html>

Este trecho de código exibirá o seguinte resultado:

A data é: Sun Aug 1 00:00:00 UTC-0300 2010.

É importante ficar atento à faixa de valores permitida para cada um dos parâmetros:

year - Exigido. Aqui devemos fornecer o ano completo, por exemplo, 1997 (e não 97).

month - Exigido. Devemos fornecer o mês como um inteiro na faixa de 0 a 11 (janeiro é 0 enquanto dezembro é 11).

date - Opcional. Aqui devemos fornecer o dia como um inteiro na faixa de 1 a 31.

hours - Opcional. Devemos fornecer as horas como um inteiro na faixa de 0 a 23.

minutes - Opcional. Devemos fornecer os minutos como um inteiro na faixa de 0 a 59.

seconds - Opcional. Devemos fornecer os segundos como um inteiro na faixa de 0 a 59.

ms - Opcional. Um inteiro na faixa de 0 a 999.

Veja agora um trecho de código no qual construímos a data 14/05/2010 às 17:50:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

<script type="text/javascript">
  // vamos construir a data 14/05/2010 às 17:50
  var data = new Date(2010, 4, 14, 17, 50);

  // vamos exibir o resultado
  document.write("A data é: " + data); 
</script>

Este código exibirá o seguinte resultado:

A data é: Fri May 14 17:50:00 UTC-0300 2010.

Esta dica foi escrita e testada no Internet Explorer 8 e Firefox 3.6.


Python ::: PyQt GUI Toolkit ::: QMainWindow

Como criar a janela principal de uma aplicação Python PyQt usando a classe QMainWindow

Quantidade de visualizações: 1141 vezes
Em geral toda aplicação GUI, ou seja, uma aplicação de interface visual, rodando no Window, Linux, MAC, etc, possui uma janela principal. No PyQt tal janela é criada como uma instância da classe QMainWindow.

Veja a posição desta classe na hierarquia de classes do PyQt:

QObject, QPaintDevice
  QWidget
    QMainWindow


Uma janela QMainWindow possui o seu próprio layout, no qual podemos adicionar uma barra de ferramentas QToolBar, um QDockWidget (que serve para controles que "grudam" em lados diferentes da tela), uma barra de menus QMenuBar e uma barra de status QStatusBar.

O layout oferecido pela classe QMainWindow possui uma área central que pode ser ocupada por qualquer tipo de controle visual. É nessa área central que podemos colocar outros tipos de gerenciadores de layouts, que servirão como containers para os componentes visuais da aplicação.

Veja uma aplicação PyQt completa na qual temos uma janela principal QMainWindow e um botão QPushButton. Observe como tiramos proveito da programação orientada em Python para criar uma classe JanelaPrincipal que herda de QMainWindow:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

# vamos importar os módulos necessários
import sys
from PyQt6.QtCore import *
from PyQt6.QtGui import *
from PyQt6.QtWidgets import *

# vamos criar uma classe que herda de QMainWindow
class JanelaPrincipal(QMainWindow):
  # construtor da classe
  def __init__(self):
    super().__init__()

    # definimos o título da janela 
    self.setWindowTitle("Cadastro de Produtos")
    
    # vamos criar um botão QPushButton
    botao = QPushButton("Novo Produto")

    # definimos este botão como o controle central
    # da janela principal
    self.setCentralWidget(botao)

if __name__== "__main__":
  # cria a aplicação
  app = QApplication(sys.argv)

  # cria a janela principal e a coloca visível
  janela_principal = JanelaPrincipal()
  janela_principal.show()

  # executa a aplicação
  app.exec()



Desafios, Exercícios e Algoritmos Resolvidos de Python

Veja mais Dicas e truques de Python

Dicas e truques de outras linguagens

Códigos Fonte

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento
Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidadesControle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades
Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: Delphi
6º lugar: C
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2024 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 82 usuários muito felizes estudando em nosso site.