/ / Java proces dávajúci prioritu iným procesom Windows - java, Windows, multithreading

Java proces prináša prioritu ostatným systémom Windows - java, windows, multithreading

Mám za úlohu vytvoriť vlastný súborZáložná služba, ktorá by všetkým prenosným počítačom využívajúcim túto službu umožnila zálohovanie určitých adresárov po pripojení k nášmu sieťovému serveru. Požiadavka, aby mi bola poskytnutá, je, že služba by v zásade mala uprednostňovať bežnú činnosť používateľa na tomto prenosnom počítači a nebránila výkonu ... príliš veľa. Tento program som vytvoril v Jave s úmyslom zabaliť ho ako službu. s YAJSW. Viem, že môžem nastaviť „Prioritu procesu“ na NÍZKY, čo by umožnilo:

Vlákna procesu sú preferované vláknami akéhokoľvek procesu bežiaceho vo vyššej prioritnej úrovni.

Z tohto dôvodu som si myslel, že využijem vlákno na prenos súborov s myšlienkou, že tieto vlákna by urobili práve to. V súčasnej dobe mám niečo také:

public void copyFiles() {
for (ScannedFile file : filesToCopy) {
new Thread() {
@Override
public void run() {
fileCopyUsingStreams(file);
}
}.start();
}
}

Nie som si však istý, či to skutočne budepracovať tak, ako myslím. Ako alternatívu som tiež myslel, že tieto vlákna by som mohol postupne prevádzkovať v nádeji, že sa zvýši pravdepodobnosť „výťažku priority“. Hľadám akékoľvek nápady a vylepšenia, ktoré by ste všetci mohli požičať. Vďaka.

odpovede:

2 pre odpoveď č. 1

Mám pocit, že ste na správnej ceste. Však bude existovať limit, koľko vlákien by ste mali vytvoriť. Môže to byť I / O na notebooku, sieťové I / O alebo váš server. Uistite sa, že nejakým spôsobom obmedzíte počet vlákien - možno dokonca konfigurovateľný parameter.

V tejto súvislosti sa naozaj nebudete musieť starať o prioritu vlákna Java, pretože to sú žonglérske priority v rámci JVM.