Como saber quantos nucleos tem o processador em Java [RESOLVIDO]

6 respostas
C

Estou aprendendo Programação com Threads e gostaria de saber
se tem algum comando que consiga saber quantos nucleos tem o processador,
para fazer uma aplicação dinamica que crie a quantidade de Threads conforme a
quantidade de nucleos do processador.

Bem que poderia ter um comando mais ou menos assim:
System.getCountCore(); :smiley:

6 Respostas

A

Olá, o que eu entendi é que você esta querendo dividir sua aplicacao nos nucleos do processador, mas no caso do java quem controlará as threads entre os nucleos sera a jvm. Se vc tiver dois nucleos nao necessariamente cada thread estara em um nucleo.

E

http://docs.oracle.com/javase/6/docs/api/java/lang/Runtime.html#availableProcessors()

C

A sim é isso mesmo, é que não soube me expressar direito, cada thread vai ser executada conforme a disponibilidade dos nucleos.

C
entanglement:
http://docs.oracle.com/javase/6/docs/api/java/lang/Runtime.html#availableProcessors%28%29

Obrigado pela ajuda.

Conforme a documentação da classe Runtime, consegui ver quantos nucleos tem o processador
e até a quantidade de memoria disponivel e total.
Segue exemplo do codigo para quem precisar.

class Sistema {

	public static void main(String args[]) {

		Runtime runTime = Runtime.getRuntime();

		System.out.println("Nucleos do Processador: " + runTime.availableProcessors());
		System.out.println("Memoria livre: " + runTime.freeMemory() + " bytes");
		System.out.println("Memoria total: " + runTime.totalMemory() + " bytes");
	}
}
H
CeLaumMm:
entanglement:
http://docs.oracle.com/javase/6/docs/api/java/lang/Runtime.html#availableProcessors%28%29

Obrigado pela ajuda.

Conforme a documentação da classe Runtime, consegui ver quantos nucleos tem o processador
e até a quantidade de memoria disponivel e total.
Segue exemplo do codigo para quem precisar.

class Sistema {

	public static void main(String args[]) {

		Runtime runTime = Runtime.getRuntime();

		System.out.println("Nucleos do Processador: " + runTime.availableProcessors());
		System.out.println("Memoria livre: " + runTime.freeMemory() + " bytes");
		System.out.println("Memoria total: " + runTime.totalMemory() + " bytes");
	}
}
E com você pretende utilizar essas informações?
C

Hebert Coelho:

E com você pretende utilizar essas informações?

Como estou aprendendo a programar com threads, estou fazendo um programinha
que multiplica MatrizA[1000][1000] * MatrizB[1000][1000] = MatrizC e esse programa vou deixar dinamico
para criar as Threads conforme a quantidade de nucleos e multiplicar as matrizes conforme as threads criadas.

Criado 4 de abril de 2013
Ultima resposta 4 de abr. de 2013
Respostas 6
Participantes 4