ΠΡΠΎΡΠ΅Π΄ΡΡΠ° ΠΊΠ²Π°Π½ΡΠΎΠ²Π°Π½ΠΈΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΡ (priority) Π·Π°Π΄Π°Ρ. Π Java ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΡΠ΅Π»ΡΠΌ ΡΠΈΡΠ»ΠΎΠΌ. Π§Π΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ ΡΠΈΡΠ»ΠΎ, ΡΠ΅ΠΌ Π²ΡΡΠ΅ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ. Π‘ΡΡΠΎΠ³ΠΈΡ ΠΏΡΠ°Π²ΠΈΠ» ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ°ΠΌΠΈ Π½Π΅Ρ, ΠΊΠ°ΠΆΠ΄Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π²Π΅ΡΡΠΈ ΡΠ΅Π±Ρ ΠΏΠΎ-ΡΠ°Π·Π½ΠΎΠΌΡ Π½Π° ΡΠ°Π·Π½ΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°Ρ . ΠΠ΄Π½Π°ΠΊΠΎ Π΅ΡΡΡ ΠΎΠ±ΡΠ΅Π΅ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ β ΠΏΠΎΡΠΎΠΊ Ρ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΈΠΌ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π±ΠΎΠ»ΡΡΠ΅Π΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΊΠ²Π°Π½ΡΠΎΠ² Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½Π° ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΈ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΡΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡΡΠ΅Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠ²ΠΎΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΈ ΡΠ΅Π°Π³ΠΈΡΠΎΠ²Π°ΡΡ Π½Π° ΠΏΠΎΡΡΡΠΏΠ°ΡΡΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅.
Π ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΡΠ°Π·ΡΠΌΠ½ΡΠΌ Π·Π°ΠΏΡΡΡΠΈΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΠΎΡΠΎΠΊ, ΠΎΡΠ²Π΅ΡΠ°ΡΡΠΈΠΉ Π·Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ. ΠΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΡΠ°Π²ΠΈΡΡ Π²ΡΡΠΎΠΊΠΈΠΉ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π² ΡΠ»ΡΡΠ°Π΅ Π±Π΅Π·Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΡΠΎΡ ΠΏΠΎΡΠΎΠΊ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π΅ Π±ΡΠ΄Π΅Ρ Π·Π°Π½ΠΈΠΌΠ°ΡΡ ΡΠ΅ΡΡΡΡΡ ΠΌΠ°ΡΠΈΠ½Ρ. Π ΡΠ»ΡΡΠ°Π΅ ΠΆΠ΅ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΡΡΡΠ΅Π΅ ΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΡΡΠΎΠ±Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ ΡΠ°Π±ΠΎΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ Π·Π΄Π΅ΡΡ ΠΆΠ΅ Π΅ΡΠ΅ ΠΎΠ΄Π½ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ². Π Π°Π½ΡΡΠ΅, ΠΊΠΎΠ³Π΄Π° ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π»ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΏΠΎΡΠΎΡΠ½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ ΠΎΠ΄Π½ΠΎΠ·Π½Π°ΡΠ½ΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΠ»ΠΎ ΠΊ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. Π’Π΅ΠΏΠ΅ΡΡ ΠΆΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π΅ΡΡΡ Ρ ΠΎΡΡ ΠΎΠ΄ΠΈΠ½ Π΄Π΅ΠΉΡΡΠ²ΡΡΡΠΈΠΉ ΠΏΠΎΡΠΎΠΊ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. Π ΡΠΎ ΠΆΠ΅ Π²ΡΠ΅ΠΌΡ ΡΠ°ΡΡΠΎ Π±ΡΠ²Π°ΡΡ Π½ΡΠΆΠ½Ρ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°ΡΡΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΠΈΠΌΠ΅ΡΡ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΡΠΌΡΡΠ»Π°, Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ ΠΎΡΡΠ°ΡΡΡΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΎΠ΄Π½ΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ±ΠΎΡΡΠΈΠΊ ΠΌΡΡΠΎΡΠ° Π² Java Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ Π² Π²ΠΈΠ΄Π΅ ΡΠΎΠ½ΠΎΠ²ΠΎΠ³ΠΎ (Π½ΠΈΠ·ΠΊΠΎΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ½ΠΎΠ³ΠΎ) ΠΏΡΠΎΡΠ΅ΡΡΠ°. ΠΠ³ΠΎ Π·Π°Π΄Π°ΡΠ° β ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΆΠ΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ, ΠΈ Π·Π°ΡΠ΅ΠΌ ΡΠ½ΠΈΡΡΠΎΠΆΠ°ΡΡ ΠΈΡ , ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΡ ΠΏΠ°ΠΌΡΡΡ. ΠΠΎΠ½ΡΡΠ½ΠΎ, ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ° ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ° garbage collector 'Π° Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΡΠΌΡΡΠ»Π°.
Π’Π°ΠΊΠΈΠ΅ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°ΡΡΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ Π½Π°Π·ΡΠ²Π°ΡΡ Π΄Π΅ΠΌΠΎΠ½Π°ΠΌΠΈ ( daemon ), ΡΡΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π»ΡΠ±ΠΎΠΌΡ ΠΏΠΎΡΠΎΠΊΡ. Π ΠΈΡΠΎΠ³Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π΅ΡΡΡ Ρ ΠΎΡΡ Π±Ρ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡΠΎΠΊ Π½Π΅- Π΄Π΅ΠΌΠΎΠ½.
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΠΏΠΎΡΠΎΠΊΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ Π² Java.
ΠΠ°Π·ΠΎΠ²ΡΠ΅ ΠΊΠ»Π°ΡΡΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ
ΠΠ»Π°ΡΡ Thread
ΠΠΎΡΠΎΠΊ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π² Java ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠΌ ΠΊΠ»Π°ΡΡΠ° Thread. ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠ²ΠΎΠΉ ΠΏΠΎΡΠΎΠΊ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡΡΡ ΠΎΡ ΡΡΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΠΈ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΌΠ΅ΡΠΎΠ΄ run(). ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ,
public class MyThread extends Thread {
public void run() {
// Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π΄ΠΎΠ»Π³ΠΎΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅, Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅
long sum=0;
for (int i=0; i<1000; i++) {
sum+=i;
}
System.out.println(sum);
}
}
ΠΠ΅ΡΠΎΠ΄ run() ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π² Π½ΠΎΠ²ΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠ΅ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. Π§ΡΠΎΠ±Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ Π΅Π³ΠΎ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΊΠ»Π°ΡΡΠ°-Π½Π°ΡΠ»Π΅Π΄Π½ΠΈΠΊΠ° ΠΈ Π²ΡΠ·Π²Π°ΡΡ ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ start(), ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅, ΡΡΠΎ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π·Π°ΠΏΡΡΡΠΈΡΡ Π½ΠΎΠ²ΡΠΉ ΠΏΠΎΡΠΎΠΊ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈ Π½Π°ΡΠ°ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π² Π½Π΅ΠΌ ΠΌΠ΅ΡΠΎΠ΄ run().
MyThread t = new MyThread();
t.start();
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΡΠ΅Π³ΠΎ Π½Π° ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ ΠΏΠΎΡΠ²ΠΈΡΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ:
499500
ΠΠΎΠ³Π΄Π° ΠΌΠ΅ΡΠΎΠ΄ run() Π·Π°Π²Π΅ΡΡΠ΅Π½ (Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, Π²ΡΡΡΠ΅ΡΠΈΠ»ΠΎΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ return ), ΠΏΠΎΡΠΎΠΊ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ. ΠΠ΄Π½Π°ΠΊΠΎ Π½ΠΈΡΡΠΎ Π½Π΅ ΠΏΡΠ΅ΠΏΡΡΡΡΠ²ΡΠ΅Ρ Π·Π°ΠΏΠΈΡΠΈ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π° Π² ΡΡΠΎΠΌ ΠΌΠ΅ΡΠΎΠ΄Π΅. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΏΠΎΡΠΎΠΊ Π½Π΅ ΠΏΡΠ΅ΡΠ²Π΅Ρ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈ Π±ΡΠ΄Π΅Ρ ΠΎΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠΈ ΡΠ°Π±ΠΎΡΡ Π²ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Runnable
ΠΠΏΠΈΡΠ°Π½Π½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΈΠΌΠ΅Π΅Ρ ΠΎΠ΄ΠΈΠ½ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΠΊ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π² Java ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ, ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡΡΡ ΠΎΡ Thread ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡ. ΠΡΠ»ΠΈ Π΅ΡΠ΅ ΡΠ°Π· ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π½Π° ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π²ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠ°Π½Π΅Ρ ΠΏΠΎΠ½ΡΡΠ½ΠΎ, ΡΡΠΎ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠ»ΠΎΡΡ ΡΠΎΠ»ΡΠΊΠΎ Ρ ΡΠ΅Π»ΡΡ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΌΠ΅ΡΠΎΠ΄Π° run(). ΠΠΎΡΡΠΎΠΌΡ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ²ΠΎΠΉ ΠΏΠΎΡΠΎΠΊ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. ΠΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Runnable, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΌΠ΅ΡΠΎΠ΄ β ΡΠΆΠ΅ Π·Π½Π°ΠΊΠΎΠΌΡΠΉ void run(). ΠΠ°ΠΏΠΈΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π²ΡΡΠ΅, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°:
public class MyRunnable implements Runnable {
public void run() {
// Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π΄ΠΎΠ»Π³ΠΎΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅, Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅
long sum=0;
for (int i=0; i<1000; i++) {
sum+=i;
}
System.out.println(sum);
}
}
Π’Π°ΠΊΠΆΠ΅ Π½Π΅Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° Π·Π°ΠΏΡΡΠΊΠ° ΠΏΠΎΡΠΎΠΊΠ°:
Runnable r = new MyRunnable();
Thread t = new Thread(r);
t.start();
ΠΡΠ»ΠΈ ΡΠ°Π½ΡΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠΈΠΉ ΡΠ°ΠΌ ΠΏΠΎΡΠΎΠΊ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡ Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ run(), ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠΈΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ, Π±ΡΠ»ΠΈ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½Ρ Π² ΠΎΠ΄Π½ΠΎΠΌ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ΅ ΠΊΠ»Π°ΡΡΠ° MyThread, ΡΠΎ ΡΠ΅ΠΏΠ΅ΡΡ ΠΎΠ½ΠΈ ΡΠ°Π·Π΄Π΅Π»Π΅Π½Ρ. ΠΠ°ΠΊΠΎΠΉ ΠΈΠ· Π΄Π²ΡΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΎΠ² ΡΠ΄ΠΎΠ±Π½Π΅ΠΉ, ΡΠ΅ΡΠ°Π΅ΡΡΡ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅.
ΠΠΎΠ΄ΡΠ΅ΡΠΊΠ½Π΅ΠΌ, ΡΡΠΎ Runnable Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠ»Π½ΠΎΠΉ Π·Π°ΠΌΠ΅Π½ΠΎΠΉ ΠΊΠ»Π°ΡΡΡ Thread, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ Π·Π°ΠΏΡΡΠΊ ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ° ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΡΠ΅Π· ΠΌΠ΅ΡΠΎΠ΄ Thread.start().
Π Π°Π±ΠΎΡΠ° Ρ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ°ΠΌΠΈ
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ Π² Java ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π·Π½Π°ΡΠ°ΡΡ ΠΏΠΎΡΠΎΠΊΠ°ΠΌ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π² ΠΊΠ»Π°ΡΡΠ΅ Thread ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ getPriority() ΠΈ setPriority(), Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½Ρ ΡΡΠΈ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ:
MIN_PRIORITY
MAX_PRIORITY
NORM_PRIORITY
ΠΠ· Π½Π°Π·Π²Π°Π½ΠΈΡ ΠΏΠΎΠ½ΡΡΠ½ΠΎ, ΡΡΠΎ ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅, ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΠΈ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠ΅ (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ) Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ°.
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ:
public class ThreadTest implements Runnable {
public void run() {
double calc;
for (int i=0; i<50000; i++) {
calc=Math.sin(i*i);
if (i%10000==0) {
System.out.println(getName()+ " counts " + i/10000);
}
}
}
public String getName() {
return Thread.currentThread().getName();
}
public static void main(String s[]) {
// ΠΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ° ΠΏΠΎΡΠΎΠΊΠΎΠ² Thread t[] = new Thread[3];
for (int i=0; i<t.length; i++) {
t[i]=new Thread(new ThreadTest(), "Thread "+i);
}
// ΠΠ°ΠΏΡΡΠΊ ΠΏΠΎΡΠΎΠΊΠΎΠ²
for (int i=0; i<t.length; i++) {
t[i].start();
System.out.println(t[i].getName()+ " started");
}
}
}
Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π½ΠΎΠ²ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΊΠ»Π°ΡΡΠ° Thread:
* getName()
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ ΠΊΠ»Π°ΡΡΠ° Thread ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ Π΄Π²Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°. Π ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Runnable Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ ΡΡΡΠΎΠΊΠ°. ΠΡΠΎ ΠΈΠΌΡ ΠΏΠΎΡΠΎΠΊΠ°, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΠΏΡΠΎΡΠ΅Π½ΠΈΡ Π΅Π³ΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ. ΠΠΌΠ΅Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΌΠΎΠ³ΡΡ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ. ΠΡΠ»ΠΈ Π΅Π³ΠΎ Π½Π΅ Π·Π°Π΄Π°ΡΡ, ΡΠΎ Java Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΠΏΡΠΎΡΡΡΡ ΡΡΡΠΎΠΊΡ Π²ΠΈΠ΄Π° "Thread-" ΠΈ Π½ΠΎΠΌΠ΅Ρ ΠΏΠΎΡΠΎΠΊΠ° (Π²ΡΡΠΈΡΠ»ΡΠ΅ΡΡΡ ΠΏΡΠΎΡΡΡΠΌ ΡΡΠ΅ΡΡΠΈΠΊΠΎΠΌ). ΠΠΌΠ΅Π½Π½ΠΎ ΡΡΠΎ ΠΈΠΌΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ getName(). ΠΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΌΠ΅Π½ΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° setName().
* currentThread()
ΠΡΠΎΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π² Π»ΡΠ±ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅ ΠΊΠΎΠ΄Π° ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΡΡΠ»ΠΊΡ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° Thread, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠΈΠΉ ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΏΠΎΡΠΎΠΊ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠ°Π±ΠΎΡΡ ΡΠ°ΠΊΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π±ΡΠ΄Π΅Ρ ΠΈΠΌΠ΅ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π²ΠΈΠ΄:
Thread 0 started
Thread 1 started
Thread 2 started
Thread 0 counts 0
Thread 1 counts 0
Thread 2 counts 0
Thread 0 counts 1
Thread 1 counts 1
Thread 2 counts 1
Thread 0 counts 2
Thread 2 counts 2
Thread 1 counts 2
Thread 2 counts 3
Thread 0 counts 3
Thread 1 counts 3
Thread 2 counts 4
Thread 0 counts 4
Thread 1 counts 4
ΠΡ Π²ΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ Π²ΡΠ΅ ΡΡΠΈ ΠΏΠΎΡΠΎΠΊΠ° Π±ΡΠ»ΠΈ Π·Π°ΠΏΡΡΠ΅Π½Ρ ΠΎΠ΄ΠΈΠ½ Π·Π° Π΄ΡΡΠ³ΠΈΠΌ ΠΈ Π½Π°ΡΠ°Π»ΠΈ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ. ΠΠΈΠ΄Π½ΠΎ ΡΠ°ΠΊΠΆΠ΅, ΡΡΠΎ ΠΏΠΎΡΠΎΠΊΠΈ ΠΈΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π±Π΅Π· ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ΄ΠΊΠ°, ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π² ΡΡΠ΅Π΄Π½Π΅ΠΌ ΠΎΠ½ΠΈ Π΄Π²ΠΈΠΆΡΡΡΡ Ρ ΠΎΠ΄Π½ΠΎΠΉ ΡΠΊΠΎΡΠΎΡΡΡΡ, Π½ΠΈΠΊΡΠΎ Π½Π΅ ΠΎΡΡΡΠ°Π΅Ρ ΠΈ Π½Π΅ Π΄ΠΎΠ³ΠΎΠ½ΡΠ΅Ρ.
ΠΠ²Π΅Π΄Π΅ΠΌ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ°ΠΌΠΈ, ΡΠ°ΡΡΡΠ°Π²ΠΈΠΌ ΡΠ°Π·Π½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΡΠ°Π·Π½ΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠΊΠ°ΠΆΠ΅ΡΡΡ Π½Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ. ΠΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΌΠ΅ΡΠΎΠ΄ main().
public static void main(String s[]) {
// ΠΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ° ΠΏΠΎΡΠΎΠΊΠΎΠ²
Thread t[] = new Thread[3];
for (int i=0; i<t.length; i++) {
t[i]=new Thread(new ThreadTest(),
"Thread "+i);
t[i].setPriority(Thread.MIN_PRIORITY +
(Thread.MAX_PRIORITY -
Thread.MIN_PRIORITY)/t.length*i);
}
// ΠΠ°ΠΏΡΡΠΊ ΠΏΠΎΡΠΎΠΊΠΎΠ²
for (int i=0; i<t.length; i++) {
t[i].start();
System.out.println(t[i].getName()+
" started");
}
}
Π€ΠΎΡΠΌΡΠ»Π° Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠ² ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°Π²Π½ΠΎΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π²ΡΠ΅ Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ Π²ΡΠ΅Ρ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠ². ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ° ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ° ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 1, ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ 10, Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ 5. Π’Π°ΠΊ ΡΡΠΎ Π² ΠΏΡΠΎΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°Ρ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²Π½ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΡΠΈΠΌΠΈ Π²Π΅Π»ΠΈΡΠΈΠ½Π°ΠΌΠΈ ΠΈ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΠ½ΠΈΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 3.
Π Π΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ ΡΠ°Π±ΠΎΡΡ Π±ΡΠ΄Π΅Ρ:
Thread 0 started
Thread 1 started
Thread 2 started
Thread 2 counts 0
Thread 2 counts 1
Thread 2 counts 2
Thread 2 counts 3
Thread 2 counts 4
Thread 0 counts 0
Thread 1 counts 0
Thread 1 counts 1
Thread 1 counts 2
Thread 1 counts 3
Thread 1 counts 4
Thread 0 counts 1
Thread 0 counts 2
Thread 0 counts 3
Thread 0 counts 4
ΠΠΎΡΠΎΠΊΠΈ, ΠΊΠ°ΠΊ ΠΈ ΡΠ°Π½ΡΡΠ΅, ΡΡΠ°ΡΡΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ. ΠΠΎ Π·Π°ΡΠ΅ΠΌ ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ ΡΠ΅ΠΌ Π²ΡΡΠ΅ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ, ΡΠ΅ΠΌ Π±ΡΡΡΡΠ΅Π΅ ΠΎΡΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΠΏΠΎΡΠΎΠΊ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π²Π΅ΡΡΠΌΠ° ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΡΡΠΎ ΠΏΠΎΡΠΎΠΊ Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠΌ ( Thread 0 ) Π²ΡΠ΅ ΠΆΠ΅ ΠΏΠΎΠ»ΡΡΠΈΠ» Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΎΠ΄Π½ΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΡΠ°Π½ΡΡΠ΅, ΡΠ΅ΠΌ ΠΎΡΡΠ°Π±ΠΎΡΠ°Π» ΠΏΠΎΡΠΎΠΊ Ρ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΈΠΌ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠΌ ( Thread 1 ). ΠΡΠΎ Π³ΠΎΠ²ΠΎΡΠΈΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΡ Π½Π΅ Π΄Π΅Π»Π°ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΎΠ΄Π½ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠΉ, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠ΅ΠΉ Π΅Π΄ΠΈΠ½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π»ΠΈΡΡ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡΠΎΠΊ Ρ Π½Π°ΠΈΠ²ΡΡΡΠΈΠΌ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠΌ. ΠΠ°ΠΏΡΠΎΡΠΈΠ², ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π°Π΄ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ Π·Π°Π΄Π°ΡΠ°ΠΌΠΈ Ρ ΡΡΠ΅ΡΠΎΠΌ ΠΈΡ Π²Π°ΠΆΠ½ΠΎΡΡΠΈ.
ΠΡΠ»ΠΈ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° (Π²ΡΠΏΠΎΠ»Π½ΡΡΡ 500000 Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ, Π° Π½Π΅ 50000, ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ 1000-Π΅ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅, Π° Π½Π΅ 10000-Π΅), ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π½Π°Π³Π»ΡΠ΄Π½ΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ, ΡΡΠΎ Π²ΡΠ΅ ΡΡΠΈ ΠΏΠΎΡΠΎΠΊΠ° ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠ²ΠΎΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ, ΠΏΡΠΎΡΡΠΎ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΈΠΉ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΈΡ ΡΠ°ΡΠ΅.
ΠΠ΅ΠΌΠΎΠ½-ΠΏΠΎΡΠΎΠΊΠΈ
ΠΠ΅ΠΌΠΎΠ½ -ΠΏΠΎΡΠΎΠΊΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ ΡΠΎΠ½ΠΎΠ²ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½ΡΠΆΠ½Ρ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠ² Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈ Π½Π΅ ΠΌΠΎΠ³ΡΡ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°ΡΡ Π±Π΅Π· Π½ΠΈΡ . ΠΠ»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΡΠΈΠΌ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎΠΌ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ setDaemon() ΠΈ isDaemon().
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ:
public class ThreadTest implements Runnable {