Multithreading in Java


ฮŸฯ€ฮฟฮนฮฑฮดฮฎฯ€ฮฟฯ„ฮต ฮตฯ†ฮฑฯฮผฮฟฮณฮฎ ฮผฯ€ฮฟฯฮตฮฏ ฮฝฮฑ ฮญฯ‡ฮตฮน ฯ€ฮฟฮปฮปฮฑฯ€ฮปฮญฯ‚ ฮดฮนฮตฯฮณฮฑฯƒฮฏฮตฯ‚ (ฯƒฯ„ฮนฮณฮผฮนฯŒฯ„ฯ…ฯ€ฮฑ). ฮšฮฌฮธฮต ฮผฮฏฮฑ ฮฑฯ€ฯŒ ฮฑฯ…ฯ„ฮฎ ฯ„ฮท ฮดฮนฮฑฮดฮนฮบฮฑฯƒฮฏฮฑ ฮผฯ€ฮฟฯฮตฮฏ ฮฝฮฑ ฮฑฮฝฯ„ฮนฯƒฯ„ฮฟฮนฯ‡ฮนฯƒฯ„ฮตฮฏ ฮตฮฏฯ„ฮต ฯ‰ฯ‚ ฮญฮฝฮฑ ฮฝฮฎฮผฮฑ ฮตฮฏฯ„ฮต ฯ‰ฯ‚ ฯ€ฮฟฮปฮปฮฑฯ€ฮปฮฌ ฮฝฮฎฮผฮฑฯ„ฮฑ. ฮ˜ฮฑ ฮดฮฟฯฮผฮต ฯƒฮต ฮฑฯ…ฯ„ฯŒ ฯ„ฮฟ ฯƒฮตฮผฮนฮฝฮฌฯฮนฮฟ ฯ€ฯŽฯ‚ ฮฝฮฑ ฮตฮบฯ„ฮตฮปฮฟฯฮผฮต ฯ€ฮฟฮปฮปฮญฯ‚ ฮตฯฮณฮฑฯƒฮฏฮตฯ‚ ฯ„ฮฑฯ…ฯ„ฯŒฯ‡ฯฮฟฮฝฮฑ ฮบฮฑฮน ฮธฮฑ ฮผฮฌฮธฮฟฯ…ฮผฮต ฮตฯ€ฮฏฯƒฮทฯ‚ ฯ€ฮตฯฮนฯƒฯƒฯŒฯ„ฮตฯฮฑ ฮณฮนฮฑ ฯ„ฮฑ ฮฝฮฎฮผฮฑฯ„ฮฑ ฮบฮฑฮน ฯ„ฮฟฮฝ ฯƒฯ…ฮณฯ‡ฯฮฟฮฝฮนฯƒฮผฯŒ ฮผฮตฯ„ฮฑฮพฯ ฯ„ฯ‰ฮฝ ฮฝฮทฮผฮฌฯ„ฯ‰ฮฝ.

ฮคฮน ฮตฮฏฮฝฮฑฮน ฯ„ฮฟ Single Thread;

ฮˆฮฝฮฑ ฮผฯŒฮฝฮฟ ฮฝฮฎฮผฮฑ ฮผฮญฯƒฮฑ Java ฮตฮฏฮฝฮฑฮน ฮฒฮฑฯƒฮนฮบฮฌ ฮผฮนฮฑ ฮตฮปฮฑฯ†ฯฮนฮฌ ฮบฮฑฮน ฮท ฮผฮนฮบฯฯŒฯ„ฮตฯฮท ฮผฮฟฮฝฮฌฮดฮฑ ฮตฯ€ฮตฮพฮตฯฮณฮฑฯƒฮฏฮฑฯ‚. Java ฯ‡ฯฮทฯƒฮนฮผฮฟฯ€ฮฟฮนฮตฮฏ ฮฝฮฎฮผฮฑฯ„ฮฑ ฯ‡ฯฮทฯƒฮนฮผฮฟฯ€ฮฟฮนฯŽฮฝฯ„ฮฑฯ‚ ฮผฮนฮฑ ยซฮšฮปฮฌฯƒฮท ฮฮทฮผฮฌฯ„ฯ‰ฮฝยป. ฮฅฯ€ฮฌฯฯ‡ฮฟฯ…ฮฝ ฮดฯฮฟ ฯ„ฯฯ€ฮฟฮน ฮฝฮทฮผฮฌฯ„ฯ‰ฮฝ - ฮฝฮฎฮผฮฑ ฯ‡ฯฮฎฯƒฯ„ฮท ฮบฮฑฮน ฮฝฮฎฮผฮฑ ฮดฮฑฮฏฮผฮฟฮฝฮฑฯ‚ (ฯ„ฮฑ ฮฝฮฎฮผฮฑฯ„ฮฑ daemon ฯ‡ฯฮทฯƒฮนฮผฮฟฯ€ฮฟฮนฮฟฯฮฝฯ„ฮฑฮน ฯŒฯ„ฮฑฮฝ ฮธฮญฮปฮฟฯ…ฮผฮต ฮฝฮฑ ฮบฮฑฮธฮฑฯฮฏฯƒฮฟฯ…ฮผฮต ฯ„ฮทฮฝ ฮตฯ†ฮฑฯฮผฮฟฮณฮฎ ฮบฮฑฮน ฯ‡ฯฮทฯƒฮนฮผฮฟฯ€ฮฟฮนฮฟฯฮฝฯ„ฮฑฮน ฯƒฯ„ฮฟ ฯ€ฮฑฯฮฑฯƒฮบฮฎฮฝฮนฮฟ). ฮŒฯ„ฮฑฮฝ ฮพฮตฮบฮนฮฝฮฌ ฮผฮนฮฑ ฮตฯ†ฮฑฯฮผฮฟฮณฮฎ ฮณฮนฮฑ ฯ€ฯฯŽฯ„ฮท ฯ†ฮฟฯฮฌ, ฮดฮทฮผฮนฮฟฯ…ฯฮณฮตฮฏฯ„ฮฑฮน ฮฝฮฎฮผฮฑ ฯ‡ฯฮฎฯƒฯ„ฮท. ฮ‘ฮฝฮฑฯฯ„ฮฎฯƒฯ„ฮต ฯ„ฮฟ, ฮผฯ€ฮฟฯฮฟฯฮผฮต ฮฝฮฑ ฮดฮทฮผฮนฮฟฯ…ฯฮณฮฎฯƒฮฟฯ…ฮผฮต ฯ€ฮฟฮปฮปฮฌ ฮฝฮฎฮผฮฑฯ„ฮฑ ฯ‡ฯฮทฯƒฯ„ฯŽฮฝ ฮบฮฑฮน ฮฝฮฎฮผฮฑฯ„ฮฑ ฮดฮฑฮฏฮผฮฟฮฝฮฑ.

ฮ ฮฑฯฮฌฮดฮตฮนฮณฮผฮฑ ฮผฮตฮผฮฟฮฝฯ‰ฮผฮญฮฝฮฟฯ… ฮฝฮฎฮผฮฑฯ„ฮฟฯ‚:

package demotest;

public class GuruThread
{
       public static void main(String[] args) {
              System.out.println("Single Thread");
       }
}

ฮ ฮปฮตฮฟฮฝฮตฮบฯ„ฮฎฮผฮฑฯ„ฮฑ ฯ„ฮฟฯ… ฮฑฯ€ฮปฮฟฯ ฮฝฮฎฮผฮฑฯ„ฮฟฯ‚:

  • ฮœฮตฮนฯŽฮฝฮตฮน ฯ„ฮทฮฝ ฮตฯ€ฮนฮฒฮฌฯฯ…ฮฝฯƒฮท ฯ„ฮทฯ‚ ฮตฯ†ฮฑฯฮผฮฟฮณฮฎฯ‚ ฮบฮฑฮธฯŽฯ‚ ฮตฮบฯ„ฮตฮปฮตฮฏฯ„ฮฑฮน ฮญฮฝฮฑ ฮฝฮฎฮผฮฑ ฯƒฯ„ฮฟ ฯƒฯฯƒฯ„ฮทฮผฮฑ
  • ฮ•ฯ€ฮฏฯƒฮทฯ‚, ฮผฮตฮนฯŽฮฝฮตฮน ฯ„ฮฟ ฮบฯŒฯƒฯ„ฮฟฯ‚ ฯƒฯ…ฮฝฯ„ฮฎฯฮทฯƒฮทฯ‚ ฯ„ฮทฯ‚ ฮตฯ†ฮฑฯฮผฮฟฮณฮฎฯ‚.

ฮคฮน ฮตฮฏฮฝฮฑฮน ฯ„ฮฟ Multithreading ฮผฮญฯƒฮฑ Java?

ฮ ฮฟฮปฮปฮฑฯ€ฮปฯŽฮฝ ฮฝฮทฮผฮฌฯ„ฯ‰ฮฝ in Java ฮตฮฏฮฝฮฑฮน ฮผฮนฮฑ ฮดฮนฮฑฮดฮนฮบฮฑฯƒฮฏฮฑ ฮตฮบฯ„ฮญฮปฮตฯƒฮทฯ‚ ฮดฯฮฟ ฮฎ ฯ€ฮตฯฮนฯƒฯƒฯŒฯ„ฮตฯฯ‰ฮฝ ฮฝฮทฮผฮฌฯ„ฯ‰ฮฝ ฯ„ฮฑฯ…ฯ„ฯŒฯ‡ฯฮฟฮฝฮฑ ฮณฮนฮฑ ฯ„ฮท ฮผฮญฮณฮนฯƒฯ„ฮท ฯ‡ฯฮฎฯƒฮท ฯ„ฮทฯ‚ CPU. ฮŸฮน ฮตฯ†ฮฑฯฮผฮฟฮณฮญฯ‚ ฯ€ฮฟฮปฮปฮฑฯ€ฮปฯŽฮฝ ฮฝฮทฮผฮฌฯ„ฯ‰ฮฝ ฮตฮบฯ„ฮตฮปฮฟฯฮฝ ฮดฯฮฟ ฮฎ ฯ€ฮตฯฮนฯƒฯƒฯŒฯ„ฮตฯฮฑ ฮฝฮฎฮผฮฑฯ„ฮฑ ฯ€ฮฟฯ… ฮตฮบฯ„ฮตฮปฮฟฯฮฝฯ„ฮฑฮน ฯ„ฮฑฯ…ฯ„ฯŒฯ‡ฯฮฟฮฝฮฑ. ฮฉฯ‚ ฮตฮบ ฯ„ฮฟฯฯ„ฮฟฯ…, ฮตฮฏฮฝฮฑฮน ฮตฯ€ฮฏฯƒฮทฯ‚ ฮณฮฝฯ‰ฯƒฯ„ฯŒ ฯ‰ฯ‚ Concurrency in Java. ฮšฮฌฮธฮต ฮฝฮฎฮผฮฑ ฯ„ฯฮญฯ‡ฮตฮน ฯ€ฮฑฯฮฌฮปฮปฮทฮปฮฑ ฮผฮตฯ„ฮฑฮพฯ ฯ„ฮฟฯ…ฯ‚. ฮคฮฑ ฯ€ฮฟฮปฮปฮฑฯ€ฮปฮฌ ฮฝฮฎฮผฮฑฯ„ฮฑ ฮดฮตฮฝ ฮตฮบฯ‡ฯ‰ฯฮฟฯฮฝ ฮพฮตฯ‡ฯ‰ฯฮนฯƒฯ„ฮฎ ฯ€ฮตฯฮนฮฟฯ‡ฮฎ ฮผฮฝฮฎฮผฮทฯ‚, ฮตฯ€ฮฟฮผฮญฮฝฯ‰ฯ‚ ฮตฮพฮฟฮนฮบฮฟฮฝฮฟฮผฮฟฯฮฝ ฮผฮฝฮฎฮผฮท. ฮ•ฯ€ฮฏฯƒฮทฯ‚, ฮท ฮตฮฝฮฑฮปฮปฮฑฮณฮฎ ฯ€ฮตฯฮนฮฒฮฌฮปฮปฮฟฮฝฯ„ฮฟฯ‚ ฮผฮตฯ„ฮฑฮพฯ ฯ„ฯ‰ฮฝ ฮฝฮทฮผฮฌฯ„ฯ‰ฮฝ ฮฑฯ€ฮฑฮนฯ„ฮตฮฏ ฮปฮนฮณฯŒฯ„ฮตฯฮฟ ฯ‡ฯฯŒฮฝฮฟ.

ฮ ฮฑฯฮฌฮดฮตฮนฮณฮผฮฑ ฯ€ฮฟฮปฮปฮฑฯ€ฮปฯŽฮฝ ฮฝฮทฮผฮฌฯ„ฯ‰ฮฝ:

package demotest;
public class GuruThread1 implements Runnable
{
       public static void main(String[] args) {
        Thread guruThread1 = new Thread("Guru1");
        Thread guruThread2 = new Thread("Guru2");
        guruThread1.start();
        guruThread2.start();
        System.out.println("Thread names are following:");
        System.out.println(guruThread1.getName());
        System.out.println(guruThread2.getName());
    }
    @Override
    public void run() {
    }
}

ฮ ฮปฮตฮฟฮฝฮตฮบฯ„ฮฎฮผฮฑฯ„ฮฑ ฯ„ฮฟฯ… multithread:

  • ฮŸฮน ฯ‡ฯฮฎฯƒฯ„ฮตฯ‚ ฮดฮตฮฝ ฮตฮฏฮฝฮฑฮน ฮฑฯ€ฮฟฮบฮปฮตฮนฯƒฮผฮญฮฝฮฟฮน ฮตฯ€ฮตฮนฮดฮฎ ฯ„ฮฑ ฮฝฮฎฮผฮฑฯ„ฮฑ ฮตฮฏฮฝฮฑฮน ฮฑฮฝฮตฮพฮฌฯฯ„ฮทฯ„ฮฑ ฮบฮฑฮน ฮผฯ€ฮฟฯฮฟฯฮผฮต ฮฝฮฑ ฮตฮบฯ„ฮตฮปฮญฯƒฮฟฯ…ฮผฮต ฯ€ฮฟฮปฮปฮญฯ‚ ฮปฮตฮนฯ„ฮฟฯ…ฯฮณฮฏฮตฯ‚ ฮบฮฑฯ„ฮฌ ฮบฮฑฮนฯฮฟฯฯ‚
  • ฮฉฯ‚ ฮตฮบ ฯ„ฮฟฯฯ„ฮฟฯ…, ฯ„ฮฑ ฮฝฮฎฮผฮฑฯ„ฮฑ ฮตฮฏฮฝฮฑฮน ฮฑฮฝฮตฮพฮฌฯฯ„ฮทฯ„ฮฑ, ฯ„ฮฑ ฮฌฮปฮปฮฑ ฮฝฮฎฮผฮฑฯ„ฮฑ ฮดฮตฮฝ ฮธฮฑ ฮตฯ€ฮทฯฮตฮฑฯƒฯ„ฮฟฯฮฝ ฮตฮฌฮฝ ฮญฮฝฮฑ ฮฝฮฎฮผฮฑ ฯ€ฮปฮทฯฮฟฮฏ ฮผฮนฮฑ ฮตฮพฮฑฮฏฯฮตฯƒฮท.

ฮšฯฮบฮปฮฟฯ‚ ฮถฯ‰ฮฎฯ‚ ฮฝฮฎฮผฮฑฯ„ฮฟฯ‚ ฯƒฮต Java

ฮŸ ฮบฯฮบฮปฮฟฯ‚ ฮถฯ‰ฮฎฯ‚ ฮตฮฝฯŒฯ‚ ฮฝฮฎฮผฮฑฯ„ฮฟฯ‚:

ฮšฯฮบฮปฮฟฯ‚ ฮถฯ‰ฮฎฯ‚ ฮฝฮฎฮผฮฑฯ„ฮฟฯ‚ ฯƒฮต Java
ฮšฯฮบฮปฮฟฯ‚ ฮถฯ‰ฮฎฯ‚ ฮฝฮฎฮผฮฑฯ„ฮฟฯ‚ ฯƒฮต Java

ฮฅฯ€ฮฌฯฯ‡ฮฟฯ…ฮฝ ฮดฮนฮฌฯ†ฮฟฯฮฑ ฯƒฯ„ฮฌฮดฮนฮฑ ฯ„ฮฟฯ… ฮบฯฮบฮปฮฟฯ… ฮถฯ‰ฮฎฯ‚ ฯ„ฮฟฯ… ฮฝฮฎฮผฮฑฯ„ฮฟฯ‚ ฯŒฯ€ฯ‰ฯ‚ ฯ†ฮฑฮฏฮฝฮตฯ„ฮฑฮน ฯƒฯ„ฮฟ ฯ€ฮฑฯฮฑฯ€ฮฌฮฝฯ‰ ฮดฮนฮฌฮณฯฮฑฮผฮผฮฑ:

  1. ฮฮญฮฑ
  2. ฮ”ฯ…ฮฝฮฑฯ„ฯŒฯ„ฮทฯ„ฮฑ ฮตฮบฯ„ฮญฮปฮตฯƒฮทฯ‚
  3. ฮคฯฮญฮพฮนฮผฮฟ
  4. ฮ‘ฮฝฮฑฮผฮฟฮฝฮฎ
  5. ฮฮตฮบฯฯŒฯ‚
  1. ฮฮญฮฑ: ฮฃฮต ฮฑฯ…ฯ„ฮฎ ฯ„ฮท ฯ†ฮฌฯƒฮท, ฯ„ฮฟ ฮฝฮฎฮผฮฑ ฮดฮทฮผฮนฮฟฯ…ฯฮณฮตฮฏฯ„ฮฑฮน ฯ‡ฯฮทฯƒฮนฮผฮฟฯ€ฮฟฮนฯŽฮฝฯ„ฮฑฯ‚ ฯ„ฮทฮฝ ฮบฮปฮฌฯƒฮท "Thread class". ฮ ฮฑฯฮฑฮผฮญฮฝฮตฮน ฯƒฮต ฮฑฯ…ฯ„ฮฎฮฝ ฯ„ฮทฮฝ ฮบฮฑฯ„ฮฌฯƒฯ„ฮฑฯƒฮท ฮผฮญฯ‡ฯฮน ฯ„ฮฟ ฯ€ฯฯŒฮณฯฮฑฮผฮผฮฑ ฮพฮตฮบฮนฮฝฮฌ ฯ„ฮฟ ฮฝฮฎฮผฮฑ. ฮ•ฮฏฮฝฮฑฮน ฮตฯ€ฮฏฯƒฮทฯ‚ ฮณฮฝฯ‰ฯƒฯ„ฯŒ ฯ‰ฯ‚ ฮณฮตฮฝฮฝฮทฮผฮญฮฝฮฟ ฮฝฮฎฮผฮฑ.
  2. ฮ”ฯ…ฮฝฮฑฯ„ฯŒฯ„ฮทฯ„ฮฑ ฮตฮบฯ„ฮญฮปฮตฯƒฮทฯ‚: ฮฃฮต ฮฑฯ…ฯ„ฮฎ ฯ„ฮท ฯƒฮตฮปฮฏฮดฮฑ, ฯ„ฮฟ ฯƒฯ„ฮนฮณฮผฮนฯŒฯ„ฯ…ฯ€ฮฟ ฯ„ฮฟฯ… ฮฝฮฎฮผฮฑฯ„ฮฟฯ‚ ฮบฮฑฮปฮตฮฏฯ„ฮฑฮน ฮผฮต ฮผฮนฮฑ ฮผฮญฮธฮฟฮดฮฟ ฮญฮฝฮฑฯฮพฮทฯ‚. ฮŸ ฮญฮปฮตฮณฯ‡ฮฟฯ‚ ฮฝฮฎฮผฮฑฯ„ฮฟฯ‚ ฮดฮฏฮฝฮตฯ„ฮฑฮน ฯƒฯ„ฮฟฮฝ ฯ€ฯฮฟฮณฯฮฑฮผฮผฮฑฯ„ฮนฯƒฯ„ฮฎ ฮณฮนฮฑ ฮฝฮฑ ฮฟฮปฮฟฮบฮปฮทฯฯŽฯƒฮตฮน ฯ„ฮทฮฝ ฮตฮบฯ„ฮญฮปฮตฯƒฮท. ฮ•ฮพฮฑฯฯ„ฮฌฯ„ฮฑฮน ฮฑฯ€ฯŒ ฯ„ฮฟฮฝ ฯ€ฯฮฟฮณฯฮฑฮผฮผฮฑฯ„ฮนฯƒฯ„ฮฎ, ฮฑฮฝ ฮธฮฑ ฯ„ฯฮญฮพฮตฮน ฯ„ฮฟ ฮฝฮฎฮผฮฑ.
  3. ฮคฯฮญฮพฮนฮผฮฟ: ฮŒฯ„ฮฑฮฝ ฯ„ฮฟ ฮฝฮฎฮผฮฑ ฮฑฯฯ‡ฮฏฯƒฮตฮน ฮฝฮฑ ฮตฮบฯ„ฮตฮปฮตฮฏฯ„ฮฑฮน, ฯ„ฯŒฯ„ฮต ฮท ฮบฮฑฯ„ฮฌฯƒฯ„ฮฑฯƒฮท ฮฑฮปฮปฮฌฮถฮตฮน ฯƒฮต ฮบฮฑฯ„ฮฌฯƒฯ„ฮฑฯƒฮท "ฯ„ฯฮญฯ‡ฮฟฮฝฯ„ฮฑฯ‚". ฮŸ ฯ‡ฯฮฟฮฝฮฟฯ€ฯฮฟฮณฯฮฑฮผฮผฮฑฯ„ฮนฯƒฯ„ฮฎฯ‚ ฮตฯ€ฮนฮปฮญฮณฮตฮน ฮญฮฝฮฑ ฮฝฮฎฮผฮฑ ฮฑฯ€ฯŒ ฯ„ฮฟ ฯƒฯฮฝฮฟฮปฮฟ ฮฝฮทฮผฮฌฯ„ฯ‰ฮฝ ฮบฮฑฮน ฮฑฯฯ‡ฮฏฮถฮตฮน ฮฝฮฑ ฮตฮบฯ„ฮตฮปฮตฮฏฯ„ฮฑฮน ฯƒฯ„ฮทฮฝ ฮตฯ†ฮฑฯฮผฮฟฮณฮฎ.
  4. ฮ‘ฮฝฮฑฮผฮฟฮฝฮฎ: ฮ‘ฯ…ฯ„ฮฎ ฮตฮฏฮฝฮฑฮน ฮท ฮบฮฑฯ„ฮฌฯƒฯ„ฮฑฯƒฮท ฯŒฯ„ฮฑฮฝ ฮญฮฝฮฑ ฮฝฮฎฮผฮฑ ฯ€ฯฮญฯ€ฮตฮน ฮฝฮฑ ฯ€ฮตฯฮนฮผฮญฮฝฮตฮน. ฮšฮฑฮธฯŽฯ‚ ฯ…ฯ€ฮฌฯฯ‡ฮฟฯ…ฮฝ ฯ€ฮฟฮปฮปฮฌ ฮฝฮฎฮผฮฑฯ„ฮฑ ฯ€ฮฟฯ… ฮตฮบฯ„ฮตฮปฮฟฯฮฝฯ„ฮฑฮน ฯƒฯ„ฮทฮฝ ฮตฯ†ฮฑฯฮผฮฟฮณฮฎ, ฯ…ฯ€ฮฌฯฯ‡ฮตฮน ฮฑฮฝฮฌฮณฮบฮท ฮณฮนฮฑ ฯƒฯ…ฮณฯ‡ฯฮฟฮฝฮนฯƒฮผฯŒ ฮผฮตฯ„ฮฑฮพฯ ฯ„ฯ‰ฮฝ ฮฝฮทฮผฮฌฯ„ฯ‰ฮฝ. ฮฉฯ‚ ฮตฮบ ฯ„ฮฟฯฯ„ฮฟฯ…, ฮญฮฝฮฑ ฮฝฮฎฮผฮฑ ฯ€ฯฮญฯ€ฮตฮน ฮฝฮฑ ฯ€ฮตฯฮนฮผฮญฮฝฮตฮน, ฮผฮญฯ‡ฯฮน ฮฝฮฑ ฮตฮบฯ„ฮตฮปฮตฯƒฯ„ฮตฮฏ ฯ„ฮฟ ฮฌฮปฮปฮฟ ฮฝฮฎฮผฮฑ. ฮ•ฯ€ฮฟฮผฮญฮฝฯ‰ฯ‚, ฮฑฯ…ฯ„ฮฎ ฮท ฮบฮฑฯ„ฮฌฯƒฯ„ฮฑฯƒฮท ฮฑฮฝฮฑฯ†ฮญฯฮตฯ„ฮฑฮน ฯ‰ฯ‚ ฮบฮฑฯ„ฮฌฯƒฯ„ฮฑฯƒฮท ฮฑฮฝฮฑฮผฮฟฮฝฮฎฯ‚.
  5. ฮฮตฮบฯฯŒฯ‚: ฮ‘ฯ…ฯ„ฮฎ ฮตฮฏฮฝฮฑฮน ฮท ฮบฮฑฯ„ฮฌฯƒฯ„ฮฑฯƒฮท ฯŒฯ„ฮฑฮฝ ฯ„ฮฟ ฮฝฮฎฮผฮฑ ฯ„ฮตฯฮผฮฑฯ„ฮฏฮถฮตฯ„ฮฑฮน. ฮคฮฟ ฮฝฮฎฮผฮฑ ฮตฮฏฮฝฮฑฮน ฯƒฮต ฮบฮฑฯ„ฮฌฯƒฯ„ฮฑฯƒฮท ฮปฮตฮนฯ„ฮฟฯ…ฯฮณฮฏฮฑฯ‚ ฮบฮฑฮน ฮผฯŒฮปฮนฯ‚ ฮฟฮปฮฟฮบฮปฮทฯฯŽฮธฮทฮบฮต ฮท ฮตฯ€ฮตฮพฮตฯฮณฮฑฯƒฮฏฮฑ ฮฒฯฮฏฯƒฮบฮตฯ„ฮฑฮน ฯƒฮต "ฮฝฮตฮบฯฮฎ ฮบฮฑฯ„ฮฌฯƒฯ„ฮฑฯƒฮท".


ฮœฮญฮธฮฟฮดฮฟฮน ฯ€ฮฟฮปฮปฮฑฯ€ฮปฯŽฮฝ ฮฝฮทฮผฮฌฯ„ฯ‰ฮฝ ฯƒฮต Java

ฮœฮตฯฮนฮบฮญฯ‚ ฮฑฯ€ฯŒ ฯ„ฮนฯ‚ ฮผฮตฮธฯŒฮดฮฟฯ…ฯ‚ ฯ€ฮฟฯ… ฯ‡ฯฮทฯƒฮนฮผฮฟฯ€ฮฟฮนฮฟฯฮฝฯ„ฮฑฮน ฯƒฯ…ฮฝฮฎฮธฯ‰ฯ‚ ฮณฮนฮฑ ฮฝฮฎฮผฮฑฯ„ฮฑ ฮตฮฏฮฝฮฑฮน:

ฮœฮญฮธฮฟฮดฮฟฯ‚ ฮ ฮตฯฮนฮณฯฮฑฯ†ฮฎ
ฮฑฯฯ‡ฮฎ() ฮ‘ฯ…ฯ„ฮฎ ฮท ฮผฮญฮธฮฟฮดฮฟฯ‚ ฮพฮตฮบฮนฮฝฮฌ ฯ„ฮทฮฝ ฮตฮบฯ„ฮญฮปฮตฯƒฮท ฯ„ฮฟฯ… ฮฝฮฎฮผฮฑฯ„ฮฟฯ‚ ฮบฮฑฮน FMV ฮบฮฑฮปฮตฮฏ ฯ„ฮท ฮผฮญฮธฮฟฮดฮฟ run() ฯƒฯ„ฮฟ ฮฝฮฎฮผฮฑ.
ฮŽฯ€ฮฝฮฟฯ‚ (int ฯ‡ฮนฮปฮนฮฟฯƒฯ„ฮฌ ฯ„ฮฟฯ… ฮดฮตฯ…ฯ„ฮตฯฮฟฮปฮญฯ€ฯ„ฮฟฯ…) ฮ‘ฯ…ฯ„ฮฎ ฮท ฮผฮญฮธฮฟฮดฮฟฯ‚ ฮบฮฌฮฝฮตฮน ฯ„ฮฟ ฮฝฮฎฮผฮฑ ฮฝฮฑ ฮบฮฟฮนฮผฮฌฯ„ฮฑฮน, ฮตฯ€ฮฟฮผฮญฮฝฯ‰ฯ‚ ฮท ฮตฮบฯ„ฮญฮปฮตฯƒฮท ฯ„ฮฟฯ… ฮฝฮฎฮผฮฑฯ„ฮฟฯ‚ ฮธฮฑ ฯƒฯ„ฮฑฮผฮฑฯ„ฮฎฯƒฮตฮน ฮณฮนฮฑ ฯ‡ฮนฮปฮนฮฟฯƒฯ„ฮฌ ฯ„ฮฟฯ… ฮดฮตฯ…ฯ„ฮตฯฮฟฮปฮญฯ€ฯ„ฮฟฯ… ฯ€ฮฟฯ… ฯ€ฮฑฯฮญฯ‡ฮฟฮฝฯ„ฮฑฮน ฮบฮฑฮน ฮผฮตฯ„ฮฌ ฮฑฯ€ฯŒ ฮฑฯ…ฯ„ฯŒ, ฯ„ฮฟ ฮฝฮฎฮผฮฑ ฮฑฯฯ‡ฮฏฮถฮตฮน ฮพฮฑฮฝฮฌ ฮฝฮฑ ฮตฮบฯ„ฮตฮปฮตฮฏฯ„ฮฑฮน. ฮ‘ฯ…ฯ„ฯŒ ฮฒฮฟฮทฮธฮฌ ฯƒฯ„ฮฟ ฯƒฯ…ฮณฯ‡ฯฮฟฮฝฮนฯƒฮผฯŒ ฯ„ฯ‰ฮฝ ฮฝฮทฮผฮฌฯ„ฯ‰ฮฝ.
getName () ฮ•ฯ€ฮนฯƒฯ„ฯฮญฯ†ฮตฮน ฯ„ฮฟ ฯŒฮฝฮฟฮผฮฑ ฯ„ฮฟฯ… ฮฝฮฎฮผฮฑฯ„ฮฟฯ‚.
setPriority (ฯƒฮต ฮฝฮญฮฑ ฯ€ฯฮฟฯ„ฮตฯฮฑฮนฯŒฯ„ฮทฯ„ฮฑ) ฮ‘ฮปฮปฮฌฮถฮตฮน ฯ„ฮทฮฝ ฯ€ฯฮฟฯ„ฮตฯฮฑฮนฯŒฯ„ฮทฯ„ฮฑ ฯ„ฮฟฯ… ฮฝฮฎฮผฮฑฯ„ฮฟฯ‚.
ฮฑฯ€ฯŒฮดฮฟฯƒฮท () ฮ‘ฮฝฮฑฮณฮบฮฌฮถฮตฮน ฯ„ฮฟ ฯ„ฯฮญฯ‡ฮฟฮฝ ฮฝฮฎฮผฮฑ ฮฝฮฑ ฯƒฯ„ฮฑฮผฮฑฯ„ฮฎฯƒฮตฮน ฮบฮฑฮน ฮฌฮปฮปฮฑ ฮฝฮฎฮผฮฑฯ„ฮฑ ฮฝฮฑ ฮตฮบฯ„ฮตฮปฮตฯƒฯ„ฮฟฯฮฝ.

ฮ ฮฑฯฮฌฮดฮตฮนฮณฮผฮฑ: ฮฃฮต ฮฑฯ…ฯ„ฯŒ ฯ„ฮฟ ฯ€ฯฯŒฮณฯฮฑฮผฮผฮฑ ฯ€ฮฟฮปฮปฮฑฯ€ฮปฯŽฮฝ ฮฝฮทฮผฮฌฯ„ฯ‰ฮฝ ฯƒฯ„ฮฟ Java ฮ“ฮนฮฑ ฯ€ฮฑฯฮฌฮดฮตฮนฮณฮผฮฑ, ฮธฮฑ ฮดฮทฮผฮนฮฟฯ…ฯฮณฮฎฯƒฮฟฯ…ฮผฮต ฮญฮฝฮฑ ฮฝฮฎฮผฮฑ ฮบฮฑฮน ฮธฮฑ ฮตฮพฮตฯฮตฯ…ฮฝฮฎฯƒฮฟฯ…ฮผฮต ฮตฮฝฯƒฯ‰ฮผฮฑฯ„ฯ‰ฮผฮญฮฝฮตฯ‚ ฮผฮตฮธฯŒฮดฮฟฯ…ฯ‚ ฯ€ฮฟฯ… ฮตฮฏฮฝฮฑฮน ฮดฮนฮฑฮธฮญฯƒฮนฮผฮตฯ‚ ฮณฮนฮฑ ฮฝฮฎฮผฮฑฯ„ฮฑ.

package demotest;
public class thread_example1 implements Runnable {
    @Override
    public void run() {
    }
    public static void main(String[] args) {
        Thread guruthread1 = new Thread();
        guruthread1.start();
        try {
            guruthread1.sleep(1000);
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        guruthread1.setPriority(1);
        int gurupriority = guruthread1.getPriority();
        System.out.println(gurupriority);
        System.out.println("Thread Running");
  }
}

ฮ•ฯ€ฮตฮพฮฎฮณฮทฯƒฮท ฯ„ฮฟฯ… ฮบฯŽฮดฮนฮบฮฑ:

  • Code ฮ“ฯฮฑฮผฮผฮฎ 2: ฮ”ฮทฮผฮนฮฟฯ…ฯฮณฮฟฯฮผฮต ฮผฮนฮฑ ฮบฮปฮฌฯƒฮท "thread_Example1" ฯ€ฮฟฯ… ฯ…ฮปฮฟฯ€ฮฟฮนฮตฮฏ ฯ„ฮท ฮดฮนฮตฯ€ฮฑฯ†ฮฎ Runnable (ฮธฮฑ ฯ€ฯฮญฯ€ฮตฮน ฮฝฮฑ ฯ…ฮปฮฟฯ€ฮฟฮนฮทฮธฮตฮฏ ฮฑฯ€ฯŒ ฮฟฯ€ฮฟฮนฮฑฮดฮฎฯ€ฮฟฯ„ฮต ฮบฮปฮฌฯƒฮท ฮฟฮน ฯ€ฮฑฯฮฟฯ…ฯƒฮฏฮตฯ‚ ฯ„ฮทฯ‚ ฮฟฯ€ฮฟฮฏฮฑฯ‚ ฯ€ฯฮฟฮฟฯฮฏฮถฮฟฮฝฯ„ฮฑฮน ฮฝฮฑ ฮตฮบฯ„ฮตฮปฮตฯƒฯ„ฮฟฯฮฝ ฮฑฯ€ฯŒ ฯ„ฮฟ ฮฝฮฎฮผฮฑ.)
  • Code ฮ“ฯฮฑฮผฮผฮฎ 4: ฮ‘ฮฝฯ„ฮนฮบฮฑฮธฮนฯƒฯ„ฮฌ ฯ„ฮท ฮผฮญฮธฮฟฮดฮฟ ฮตฮบฯ„ฮญฮปฮตฯƒฮทฯ‚ ฯ„ฮทฯ‚ ฮดฮนฮตฯ€ฮฑฯ†ฮฎฯ‚ ฮผฮต ฮดฯ…ฮฝฮฑฯ„ฯŒฯ„ฮทฯ„ฮฑ ฮตฮบฯ„ฮญฮปฮตฯƒฮทฯ‚, ฮบฮฑฮธฯŽฯ‚ ฮตฮฏฮฝฮฑฮน ฯ…ฯ€ฮฟฯ‡ฯฮตฯ‰ฯ„ฮนฮบฮฎ ฮท ฯ€ฮฑฯฮฌฮบฮฑฮผฯˆฮท ฮฑฯ…ฯ„ฮฎฯ‚ ฯ„ฮทฯ‚ ฮผฮตฮธฯŒฮดฮฟฯ…
  • Code ฮ“ฯฮฑฮผฮผฮฎ 6: ฮ•ฮดฯŽ ฮญฯ‡ฮฟฯ…ฮผฮต ฮฟฯฮฏฯƒฮตฮน ฯ„ฮทฮฝ ฮบฯฯฮนฮฑ ฮผฮญฮธฮฟฮดฮฟ ฮผฮต ฯ„ฮทฮฝ ฮฟฯ€ฮฟฮฏฮฑ ฮธฮฑ ฮพฮตฮบฮนฮฝฮฎฯƒฮฟฯ…ฮผฮต ฯ„ฮทฮฝ ฮตฮบฯ„ฮญฮปฮตฯƒฮท ฯ„ฮฟฯ… ฮฝฮฎฮผฮฑฯ„ฮฟฯ‚.
  • Code ฮ“ฯฮฑฮผฮผฮฎ 7: ฮ•ฮดฯŽ ฮดฮทฮผฮนฮฟฯ…ฯฮณฮฟฯฮผฮต ฮญฮฝฮฑ ฮฝฮญฮฟ ฯŒฮฝฮฟฮผฮฑ ฮฝฮฎฮผฮฑฯ„ฮฟฯ‚ ฯ‰ฯ‚ "guruthread1" ฮตฮณฮบฮฑฮนฮฝฮนฮฌฮถฮฟฮฝฯ„ฮฑฯ‚ ฮผฮนฮฑ ฮฝฮญฮฑ ฮบฮฑฯ„ฮทฮณฮฟฯฮฏฮฑ ฮฝฮฎฮผฮฑฯ„ฮฟฯ‚.
  • Code ฮ“ฯฮฑฮผฮผฮฎ 8: ฮธฮฑ ฯ‡ฯฮทฯƒฮนฮผฮฟฯ€ฮฟฮนฮฎฯƒฮฟฯ…ฮผฮต ฯ„ฮท ฮผฮญฮธฮฟฮดฮฟ "start" ฯ„ฮฟฯ… ฮฝฮฎฮผฮฑฯ„ฮฟฯ‚ ฯ‡ฯฮทฯƒฮนฮผฮฟฯ€ฮฟฮนฯŽฮฝฯ„ฮฑฯ‚ ฯ„ฮทฮฝ ฯ€ฮตฯฮฏฯ€ฯ„ฯ‰ฯƒฮท "guruthread1". ฮ•ฮดฯŽ ฯ„ฮฟ ฮฝฮฎฮผฮฑ ฮธฮฑ ฮพฮตฮบฮนฮฝฮฎฯƒฮตฮน ฮฝฮฑ ฮตฮบฯ„ฮตฮปฮตฮฏฯ„ฮฑฮน.
  • Code ฮ“ฯฮฑฮผฮผฮฎ 10: ฮ•ฮดฯŽ ฯ‡ฯฮทฯƒฮนฮผฮฟฯ€ฮฟฮนฮฟฯฮผฮต ฯ„ฮท ฮผฮญฮธฮฟฮดฮฟ "sleep" ฯ„ฮฟฯ… ฮฝฮฎฮผฮฑฯ„ฮฟฯ‚ ฯ‡ฯฮทฯƒฮนฮผฮฟฯ€ฮฟฮนฯŽฮฝฯ„ฮฑฯ‚ ฯ„ฮฟ ฯ€ฮฑฯฮฌฮดฮตฮนฮณฮผฮฑ "guruthread1". ฮฉฯ‚ ฮตฮบ ฯ„ฮฟฯฯ„ฮฟฯ…, ฯ„ฮฟ ฮฝฮฎฮผฮฑ ฮธฮฑ ฮบฮฟฮนฮผฮฌฯ„ฮฑฮน ฮณฮนฮฑ 1000 ฯ‡ฮนฮปฮนฮฟฯƒฯ„ฮฌ ฯ„ฮฟฯ… ฮดฮตฯ…ฯ„ฮตฯฮฟฮปฮญฯ€ฯ„ฮฟฯ….
  • Code 9-14: ฮ•ฮดฯŽ ฮญฯ‡ฮฟฯ…ฮผฮต ฮฒฮฌฮปฮตฮน ฯ„ฮท ฮผฮญฮธฮฟฮดฮฟ ฯฯ€ฮฝฮฟฯ… ฯƒฯ„ฮฟ ฮผฯ€ฮปฮฟฮบ try catch ฮบฮฑฮธฯŽฯ‚ ฯ…ฯ€ฮฌฯฯ‡ฮตฮน ฮตฯ€ฮนฮปฮตฮณฮผฮญฮฝฮท ฮตฮพฮฑฮฏฯฮตฯƒฮท ฯ€ฮฟฯ… ฯƒฯ…ฮผฮฒฮฑฮฏฮฝฮตฮน, ฯ€.ฯ‡. ฮ”ฮนฮฑฮบฮตฮบฮฟฮผฮผฮญฮฝฮท ฮตฮพฮฑฮฏฯฮตฯƒฮท.
  • Code ฮ“ฯฮฑฮผฮผฮฎ 15: ฮ•ฮดฯŽ ฮฟฯฮฏฮถฮฟฯ…ฮผฮต ฯ„ฮทฮฝ ฯ€ฯฮฟฯ„ฮตฯฮฑฮนฯŒฯ„ฮทฯ„ฮฑ ฯ„ฮฟฯ… ฮฝฮฎฮผฮฑฯ„ฮฟฯ‚ ฯƒฯ„ฮฟ 1 ฮฑฯ€ฯŒ ฯŒฯ€ฮฟฮนฮฑ ฯ€ฯฮฟฯ„ฮตฯฮฑฮนฯŒฯ„ฮทฯ„ฮฑ ฮฎฯ„ฮฑฮฝ
  • Code ฮ“ฯฮฑฮผฮผฮฎ 16: ฮ•ฮดฯŽ ฯ€ฮฑฮฏฯฮฝฮฟฯ…ฮผฮต ฯ„ฮทฮฝ ฯ€ฯฮฟฯ„ฮตฯฮฑฮนฯŒฯ„ฮทฯ„ฮฑ ฯ„ฮฟฯ… ฮฝฮฎฮผฮฑฯ„ฮฟฯ‚ ฯ‡ฯฮทฯƒฮนฮผฮฟฯ€ฮฟฮนฯŽฮฝฯ„ฮฑฯ‚ ฯ„ฮทฮฝ getPriority()
  • Code ฮ“ฯฮฑฮผฮผฮฎ 17: ฮ•ฮดฯŽ ฮตฮบฯ„ฯ…ฯ€ฯŽฮฝฮฟฯ…ฮผฮต ฯ„ฮทฮฝ ฯ„ฮนฮผฮฎ ฯ€ฮฟฯ… ฮฑฮฝฮฑฮบฯ„ฮฎฮธฮทฮบฮต ฮฑฯ€ฯŒ ฯ„ฮฟ getPriority
  • Code ฮ“ฯฮฑฮผฮผฮฎ 18: ฮ•ฮดฯŽ ฮณฯฮฌฯ†ฮฟฯ…ฮผฮต ฮญฮฝฮฑ ฮบฮตฮฏฮผฮตฮฝฮฟ ฯ€ฮฟฯ… ฯ„ฯฮญฯ‡ฮตฮน ฯ„ฮฟ ฮฝฮฎฮผฮฑ.

ฮŒฯ„ฮฑฮฝ ฮตฮบฯ„ฮตฮปฮตฮฏฯ„ฮต ฯ„ฮฟฮฝ ฯ€ฮฑฯฮฑฯ€ฮฌฮฝฯ‰ ฮบฯŽฮดฮนฮบฮฑ, ฮปฮฑฮผฮฒฮฌฮฝฮตฯ„ฮต ฯ„ฮทฮฝ ฮฑฮบฯŒฮปฮฟฯ…ฮธฮท ฮญฮพฮฟฮดฮฟ:

ฮ ฮฑฯฮฌฮดฮตฮนฮณฮผฮฑ ฮฝฮฎฮผฮฑฯ„ฮฟฯ‚ ฯƒฯ„ฮฟ Java

ฮ ฮฑฯฮฑฮณฯ‰ฮณฮฎ:

ฮคฮฟ 5 ฮตฮฏฮฝฮฑฮน ฮท ฯ€ฯฮฟฯ„ฮตฯฮฑฮนฯŒฯ„ฮทฯ„ฮฑ ฯ„ฮฟฯ… ฮฝฮฎฮผฮฑฯ„ฮฟฯ‚ ฮบฮฑฮน ฯ„ฮฟ Thread Running ฮตฮฏฮฝฮฑฮน ฯ„ฮฟ ฮบฮตฮฏฮผฮตฮฝฮฟ ฯ€ฮฟฯ… ฮตฮฏฮฝฮฑฮน ฮท ฮญฮพฮฟฮดฮฟฯ‚ ฯ„ฮฟฯ… ฮบฯŽฮดฮนฮบฮฌ ฮผฮฑฯ‚.

Java ฮฮฎฮผฮฑ Syncฯ‡ฯฮฟฮฝฮนฯƒฮผฯŒฯ‚

ฮฃฯ„ฮฟ multithreading ฯ…ฯ€ฮฌฯฯ‡ฮตฮน ฮท ฮฑฯƒฯฮณฯ‡ฯฮฟฮฝฮท ฯƒฯ…ฮผฯ€ฮตฯฮนฯ†ฮฟฯฮฌ ฯ„ฯ‰ฮฝ ฯ€ฯฮฟฮณฯฮฑฮผฮผฮฌฯ„ฯ‰ฮฝ. ฮ•ฮฌฮฝ ฮญฮฝฮฑ ฮฝฮฎฮผฮฑ ฮตฮณฮณฯฮฌฯ†ฮตฮน ฮฟฯฮนฯƒฮผฮญฮฝฮฑ ฮดฮตฮดฮฟฮผฮญฮฝฮฑ ฮบฮฑฮน ฮญฮฝฮฑ ฮฌฮปฮปฮฟ ฮฝฮฎฮผฮฑ ฯ€ฮฟฯ… ฮดฮนฮฑฮฒฮฌฮถฮตฮน ฮดฮตฮดฮฟฮผฮญฮฝฮฑ ฯ„ฮฑฯ…ฯ„ฯŒฯ‡ฯฮฟฮฝฮฑ, ฮผฯ€ฮฟฯฮตฮฏ ฮฝฮฑ ฮดฮทฮผฮนฮฟฯ…ฯฮณฮฎฯƒฮตฮน ฮฑฯƒฯ…ฮฝฮญฯ€ฮตฮนฮฑ ฯƒฯ„ฮทฮฝ ฮตฯ†ฮฑฯฮผฮฟฮณฮฎ. ฮŒฯ„ฮฑฮฝ ฯ…ฯ€ฮฌฯฯ‡ฮตฮน ฮฑฮฝฮฌฮณฮบฮท ฯ€ฯฯŒฯƒฮฒฮฑฯƒฮทฯ‚ ฯƒฯ„ฮฟฯ…ฯ‚ ฮบฮฟฮนฮฝฯŒฯ‡ฯฮทฯƒฯ„ฮฟฯ…ฯ‚ ฯ€ฯŒฯฮฟฯ…ฯ‚ ฮฑฯ€ฯŒ ฮดฯฮฟ ฮฎ ฯ€ฮตฯฮนฯƒฯƒฯŒฯ„ฮตฯฮฑ ฮฝฮฎฮผฮฑฯ„ฮฑ, ฯ„ฯŒฯ„ฮต ฯ‡ฯฮทฯƒฮนฮผฮฟฯ€ฮฟฮนฮตฮฏฯ„ฮฑฮน ฮท ฯ€ฯฮฟฯƒฮญฮณฮณฮนฯƒฮท ฯƒฯ…ฮณฯ‡ฯฮฟฮฝฮนฯƒฮผฮฟฯ. Java ฮญฯ‡ฮตฮน ฯ€ฮฑฯฮฌฯƒฯ‡ฮตฮน ฯƒฯ…ฮณฯ‡ฯฮฟฮฝฮนฯƒฮผฮญฮฝฮตฯ‚ ฮผฮตฮธฯŒฮดฮฟฯ…ฯ‚ ฮณฮนฮฑ ฯ„ฮทฮฝ ฮตฯ†ฮฑฯฮผฮฟฮณฮฎ ฯƒฯ…ฮณฯ‡ฯฮฟฮฝฮนฯƒฮผฮญฮฝฮทฯ‚ ฯƒฯ…ฮผฯ€ฮตฯฮนฯ†ฮฟฯฮฌฯ‚.

ฮฃฮต ฮฑฯ…ฯ„ฮฎฮฝ ฯ„ฮทฮฝ ฯ€ฯฮฟฯƒฮญฮณฮณฮนฯƒฮท, ฮผฯŒฮปฮนฯ‚ ฯ„ฮฟ ฮฝฮฎฮผฮฑ ฯ†ฯ„ฮฌฯƒฮตฮน ฮผฮญฯƒฮฑ ฯƒฯ„ฮฟ ฯƒฯ…ฮณฯ‡ฯฮฟฮฝฮนฯƒฮผฮญฮฝฮฟ ฮผฯ€ฮปฮฟฮบ, ฯ„ฯŒฯ„ฮต ฮบฮฑฮฝฮญฮฝฮฑ ฮฌฮปฮปฮฟ ฮฝฮฎฮผฮฑ ฮดฮตฮฝ ฮผฯ€ฮฟฯฮตฮฏ ฮฝฮฑ ฮบฮฑฮปฮญฯƒฮตฮน ฮฑฯ…ฯ„ฮฎฮฝ ฯ„ฮท ฮผฮญฮธฮฟฮดฮฟ ฯƒฯ„ฮฟ ฮฏฮดฮนฮฟ ฮฑฮฝฯ„ฮนฮบฮตฮฏฮผฮตฮฝฮฟ. ฮŒฮปฮฑ ฯ„ฮฑ ฮฝฮฎฮผฮฑฯ„ฮฑ ฯ€ฯฮญฯ€ฮตฮน ฮฝฮฑ ฯ€ฮตฯฮนฮผฮญฮฝฮฟฯ…ฮฝ ฮญฯ‰ฯ‚ ฯŒฯ„ฮฟฯ… ฮฑฯ…ฯ„ฯŒ ฯ„ฮฟ ฮฝฮฎฮผฮฑ ฮฟฮปฮฟฮบฮปฮทฯฯŽฯƒฮตฮน ฯ„ฮฟ ฯƒฯ…ฮณฯ‡ฯฮฟฮฝฮนฯƒฮผฮญฮฝฮฟ ฮผฯ€ฮปฮฟฮบ ฮบฮฑฮน ฮฒฮณฮตฮน ฮฑฯ€ฯŒ ฮฑฯ…ฯ„ฯŒ. ฮœฮต ฮฑฯ…ฯ„ฯŒฮฝ ฯ„ฮฟฮฝ ฯ„ฯฯŒฯ€ฮฟ, ฮฟ ฯƒฯ…ฮณฯ‡ฯฮฟฮฝฮนฯƒฮผฯŒฯ‚ ฮฒฮฟฮทฮธฮฌ ฯƒฮต ฮผฮนฮฑ ฮตฯ†ฮฑฯฮผฮฟฮณฮฎ ฯ€ฮฟฮปฮปฮฑฯ€ฮปฯŽฮฝ ฮฝฮทฮผฮฌฯ„ฯ‰ฮฝ. ฮˆฮฝฮฑ ฮฝฮฎฮผฮฑ ฯ€ฯฮญฯ€ฮตฮน ฮฝฮฑ ฯ€ฮตฯฮนฮผฮญฮฝฮตฮน ฮญฯ‰ฯ‚ ฯŒฯ„ฮฟฯ… ฯ„ฮฟ ฮฌฮปฮปฮฟ ฮฝฮฎฮผฮฑ ฮฟฮปฮฟฮบฮปฮทฯฯŽฯƒฮตฮน ฯ„ฮทฮฝ ฮตฮบฯ„ฮญฮปฮตฯƒฮฎ ฯ„ฮฟฯ… ฮผฯŒฮฝฮฟ ฯ„ฯŒฯ„ฮต ฮตฯ€ฮนฯ„ฯฮญฯ€ฮตฯ„ฮฑฮน ฮฝฮฑ ฮตฮบฯ„ฮตฮปฮตฯƒฯ„ฮฟฯฮฝ ฯ„ฮฑ ฮฌฮปฮปฮฑ ฮฝฮฎฮผฮฑฯ„ฮฑ.

ฮœฯ€ฮฟฯฮตฮฏ ฮฝฮฑ ฮณฯฮฑฯ†ฯ„ฮตฮฏ ฮผฮต ฯ„ฮทฮฝ ฮฑฮบฯŒฮปฮฟฯ…ฮธฮท ฮผฮฟฯฯ†ฮฎ:

Synchronized(object)
{  
        //Block of statements to be synchronized
}

Multithreading in Java ฮ ฮฑฯฮฑฮดฮตฮฏฮณฮผฮฑฯ„ฮฑ ฯ€ฯฮฟฮณฯฮฑฮผฮผฮฌฯ„ฯ‰ฮฝ

ฮฃฮต ฮฑฯ…ฯ„ฮฎ ฯ„ฮทฮฝ ฯ€ฮฟฮปฯ…ฮฝฮทฮผฮฑฯ„ฮนฮบฮฎ Java ฮ“ฮนฮฑ ฯ€ฮฑฯฮฌฮดฮตฮนฮณฮผฮฑ, ฮธฮฑ ฯ€ฮฌฯฮฟฯ…ฮผฮต ฮดฯฮฟ ฮฝฮฎฮผฮฑฯ„ฮฑ ฮบฮฑฮน ฮธฮฑ ฯ†ฮญฯฮฟฯ…ฮผฮต ฯ„ฮฑ ฮฟฮฝฯŒฮผฮฑฯ„ฮฑ ฯ„ฮฟฯ… ฮฝฮฎฮผฮฑฯ„ฮฟฯ‚.

ฮ ฮฑฯฮฌฮดฮตฮนฮณฮผฮฑ 1:

GuruThread1.java
package demotest;
public class GuruThread1 implements Runnable{

    /**
     * @param args
     */
    public static void main(String[] args) {
        Thread guruThread1 = new Thread("Guru1");
        Thread guruThread2 = new Thread("Guru2");
        guruThread1.start();
        guruThread2.start();
        System.out.println("Thread names are following:");
        System.out.println(guruThread1.getName());
        System.out.println(guruThread2.getName());
    }
    @Override
    public void run() {
    }
}

ฮ•ฯ€ฮตฮพฮฎฮณฮทฯƒฮท ฯ„ฮฟฯ… ฮบฯŽฮดฮนฮบฮฑ:

  • Code ฮ“ฯฮฑฮผฮผฮฎ 3: ฮˆฯ‡ฮฟฯ…ฮผฮต ฯ€ฮฑฯฮฑฮบฮฟฮปฮฟฯ…ฮธฮฎฯƒฮตฮน ฮญฮฝฮฑ ฮผฮฌฮธฮทฮผฮฑยปGuruThread1โ€ ฯ€ฮฟฯ… ฯ…ฮปฮฟฯ€ฮฟฮนฮตฮฏ ฯ„ฮฟ Runnable (ฮธฮฑ ฯ€ฯฮญฯ€ฮตฮน ฮฝฮฑ ฯ…ฮปฮฟฯ€ฮฟฮนฮตฮฏฯ„ฮฑฮน ฮฑฯ€ฯŒ ฮฟฯ€ฮฟฮนฮฑฮดฮฎฯ€ฮฟฯ„ฮต ฮบฮปฮฌฯƒฮท ฯ„ฮทฯ‚ ฮฟฯ€ฮฟฮฏฮฑฯ‚ ฮฟฮน ฯ€ฮฑฯฮฟฯ…ฯƒฮฏฮตฯ‚ ฯ€ฯฮฟฮฟฯฮฏฮถฮฟฮฝฯ„ฮฑฮน ฮฝฮฑ ฮตฮบฯ„ฮตฮปฮตฯƒฯ„ฮฟฯฮฝ ฮฑฯ€ฯŒ ฯ„ฮฟ ฮฝฮฎฮผฮฑ.)
  • Code ฮ“ฯฮฑฮผฮผฮฎ 8: ฮ‘ฯ…ฯ„ฮฎ ฮตฮฏฮฝฮฑฮน ฮท ฮบฯฯฮนฮฑ ฮผฮญฮธฮฟฮดฮฟฯ‚ ฯ„ฮทฯ‚ ฯ„ฮฌฮพฮทฯ‚
  • Code ฮ“ฯฮฑฮผฮผฮฎ 9: ฮ•ฮดฯŽ ฮดฮทฮผฮนฮฟฯ…ฯฮณฮฟฯฮผฮต ฯ„ฮทฮฝ ฮบฮปฮฌฯƒฮท Thread ฮบฮฑฮน ฮดฮทฮผฮนฮฟฯ…ฯฮณฮฟฯฮผฮต ฮญฮฝฮฑ ฯƒฯ„ฮนฮณฮผฮนฯŒฯ„ฯ…ฯ€ฮฟ ฮผฮต ฯ„ฮฟ ฯŒฮฝฮฟฮผฮฑ "guruThread1" ฮบฮฑฮน ฮดฮทฮผฮนฮฟฯ…ฯฮณฮฟฯฮผฮต ฮญฮฝฮฑ ฮฝฮฎฮผฮฑ.
  • Code ฮ“ฯฮฑฮผฮผฮฎ 10: ฮ•ฮดฯŽ ฮดฮทฮผฮนฮฟฯ…ฯฮณฮฟฯฮผฮต ฯ„ฮทฮฝ ฮบฮปฮฌฯƒฮท Thread ฮบฮฑฮน ฮดฮทฮผฮนฮฟฯ…ฯฮณฮฟฯฮผฮต ฮญฮฝฮฑ ฯƒฯ„ฮนฮณฮผฮนฯŒฯ„ฯ…ฯ€ฮฟ ฮผฮต ฯ„ฮฟ ฯŒฮฝฮฟฮผฮฑ "guruThread2" ฮบฮฑฮน ฮดฮทฮผฮนฮฟฯ…ฯฮณฮฟฯฮผฮต ฮญฮฝฮฑ ฮฝฮฎฮผฮฑ.
  • Code ฮ“ฯฮฑฮผฮผฮฎ 11: ฮžฮตฮบฮนฮฝฮฌฮผฮต ฯ„ฮฟ ฮฝฮฎฮผฮฑ, ฯ€.ฯ‡. guruThread1.
  • Code ฮ“ฯฮฑฮผฮผฮฎ 12: ฮžฮตฮบฮนฮฝฮฌฮผฮต ฯ„ฮฟ ฮฝฮฎฮผฮฑ, ฯ€.ฯ‡. guruThread2.
  • Code ฮ“ฯฮฑฮผฮผฮฎ 13: ฮ•ฮพฮฑฮณฯ‰ฮณฮฎ ฯ„ฮฟฯ… ฮบฮตฮนฮผฮญฮฝฮฟฯ… ฯ‰ฯ‚ "ฮคฮฑ ฮฟฮฝฯŒฮผฮฑฯ„ฮฑ ฯ„ฯ‰ฮฝ ฮฝฮทฮผฮฌฯ„ฯ‰ฮฝ ฮตฮฏฮฝฮฑฮน ฯ„ฮฑ ฮฑฮบฯŒฮปฮฟฯ…ฮธฮฑ:"
  • Code ฮ“ฯฮฑฮผฮผฮฎ 14: ฮ›ฮฎฯˆฮท ฯ„ฮฟฯ… ฮฟฮฝฯŒฮผฮฑฯ„ฮฟฯ‚ ฯ„ฮฟฯ… ฮฝฮฎฮผฮฑฯ„ฮฟฯ‚ 1 ฯ‡ฯฮทฯƒฮนฮผฮฟฯ€ฮฟฮนฯŽฮฝฯ„ฮฑฯ‚ ฯ„ฮท ฮผฮญฮธฮฟฮดฮฟ getName() ฯ„ฮทฯ‚ ฮบฮปฮฌฯƒฮทฯ‚ ฮฝฮฎฮผฮฑฯ„ฮฟฯ‚.
  • Code ฮ“ฯฮฑฮผฮผฮฎ 15: ฮ›ฮฎฯˆฮท ฯ„ฮฟฯ… ฮฟฮฝฯŒฮผฮฑฯ„ฮฟฯ‚ ฯ„ฮฟฯ… ฮฝฮฎฮผฮฑฯ„ฮฟฯ‚ 2 ฯ‡ฯฮทฯƒฮนฮผฮฟฯ€ฮฟฮนฯŽฮฝฯ„ฮฑฯ‚ ฯ„ฮท ฮผฮญฮธฮฟฮดฮฟ getName() ฯ„ฮทฯ‚ ฮบฮปฮฌฯƒฮทฯ‚ ฮฝฮฎฮผฮฑฯ„ฮฟฯ‚.

ฮŒฯ„ฮฑฮฝ ฮตฮบฯ„ฮตฮปฮตฮฏฯ„ฮต ฯ„ฮฟฮฝ ฯ€ฮฑฯฮฑฯ€ฮฌฮฝฯ‰ ฮบฯŽฮดฮนฮบฮฑ, ฮปฮฑฮผฮฒฮฌฮฝฮตฯ„ฮต ฯ„ฮทฮฝ ฮฑฮบฯŒฮปฮฟฯ…ฮธฮท ฮญฮพฮฟฮดฮฟ:

Java ฮ ฮฑฯฮฌฮดฮตฮนฮณฮผฮฑ ฯ€ฮฟฮปฮปฮฑฯ€ฮปฯŽฮฝ ฮฝฮทฮผฮฌฯ„ฯ‰ฮฝ

ฮ ฮฑฯฮฑฮณฯ‰ฮณฮฎ:

ฮคฮฑ ฮฟฮฝฯŒฮผฮฑฯ„ฮฑ ฯ„ฯ‰ฮฝ ฮฝฮทฮผฮฌฯ„ฯ‰ฮฝ ฮตฮผฯ†ฮฑฮฝฮฏฮถฮฟฮฝฯ„ฮฑฮน ฮตฮดฯŽ ฯ‰ฯ‚

  • Guru1
  • Guru2

ฮ ฮฑฯฮฌฮดฮตฮนฮณฮผฮฑ 2:

ฮฃฮต ฮฑฯ…ฯ„ฯŒ ฯ„ฮฟ ฯ€ฮฟฮปฯ…ฮฝฮทฮผฮฑฯ„ฮนฮบฯŒ ฯƒฮต Java ฮ“ฮนฮฑ ฯ€ฮฑฯฮฌฮดฮตฮนฮณฮผฮฑ, ฮธฮฑ ฮผฮฌฮธฮฟฯ…ฮผฮต ฮณฮนฮฑ ฯ„ฮนฯ‚ ฮผฮตฮธฯŒฮดฮฟฯ…ฯ‚ ฯ€ฮฑฯฮฌฮบฮฑฮผฯˆฮทฯ‚ run() ฮบฮฑฮน start() ฮผฮนฮฑฯ‚ ฮดฮนฮตฯ€ฮฑฯ†ฮฎฯ‚ ฮผฮต ฮดฯ…ฮฝฮฑฯ„ฯŒฯ„ฮทฯ„ฮฑ ฮตฮบฯ„ฮญฮปฮตฯƒฮทฯ‚ ฮบฮฑฮน ฮธฮฑ ฮดฮทฮผฮนฮฟฯ…ฯฮณฮฎฯƒฮฟฯ…ฮผฮต ฮดฯฮฟ ฮฝฮฎฮผฮฑฯ„ฮฑ ฮฑฯ…ฯ„ฮฎฯ‚ ฯ„ฮทฯ‚ ฮบฮปฮฌฯƒฮทฯ‚ ฮบฮฑฮน ฮธฮฑ ฯ„ฮฑ ฮตฮบฯ„ฮตฮปฮญฯƒฮฟฯ…ฮผฮต ฮฑฮฝฮฌฮปฮฟฮณฮฑ.

ฮ•ฯ€ฮฏฯƒฮทฯ‚, ฯ€ฮฑฯฮฑฮบฮฟฮปฮฟฯ…ฮธฮฟฯฮผฮต ฮดฯฮฟ ฮผฮฑฮธฮฎฮผฮฑฯ„ฮฑ,

  • ฮˆฮฝฮฑ ฯ€ฮฟฯ… ฮธฮฑ ฯ…ฮปฮฟฯ€ฮฟฮนฮฎฯƒฮตฮน ฯ„ฮท ฮดฮนฮตฯ€ฮฑฯ†ฮฎ ฮผฮต ฮดฯ…ฮฝฮฑฯ„ฯŒฯ„ฮทฯ„ฮฑ ฮตฮบฯ„ฮญฮปฮตฯƒฮทฯ‚ ฮบฮฑฮน
  • ฮˆฮฝฮฑ ฮฌฮปฮปฮฟ ฯ€ฮฟฯ… ฮธฮฑ ฮญฯ‡ฮตฮน ฯ„ฮทฮฝ ฮบฯฯฮนฮฑ ฮผฮญฮธฮฟฮดฮฟ ฮบฮฑฮน ฮธฮฑ ฮตฮบฯ„ฮตฮปฮตฮฏฯ„ฮฑฮน ฮฑฮฝฮฌฮปฮฟฮณฮฑ.
package demotest;
public class GuruThread2 {
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  GuruThread3 threadguru1 = new GuruThread3("guru1");
  threadguru1.start();
  GuruThread3 threadguru2 = new GuruThread3("guru2");
  threadguru2.start();
 }
}
class GuruThread3 implements Runnable {
 Thread guruthread;
 private String guruname;
 GuruThread3(String name) {
  guruname = name;
 }
 @Override
 public void run() {
  System.out.println("Thread running" + guruname);
  for (int i = 0; i < 4; i++) {
   System.out.println(i);
   System.out.println(guruname);
   try {
    Thread.sleep(1000);
   } catch (InterruptedException e) {
    System.out.println("Thread has been interrupted");
   }
  }
 }
 public void start() {
  System.out.println("Thread started");
  if (guruthread == null) {
   guruthread = new Thread(this, guruname);
   guruthread.start();
  }
 }
}

ฮ•ฯ€ฮตฮพฮฎฮณฮทฯƒฮท ฯ„ฮฟฯ… ฮบฯŽฮดฮนฮบฮฑ:

  • Code ฮ“ฯฮฑฮผฮผฮฎ 2: ฮ•ฮดฯŽ ฮบฮฌฮฝฮฟฯ…ฮผฮต ฮผฮฌฮธฮทฮผฮฑยปGuruThread2โ€ ฯ„ฮฟ ฮฟฯ€ฮฟฮฏฮฟ ฮธฮฑ ฯ€ฮตฯฮนฮญฯ‡ฮตฮน ฯ„ฮท ฮผฮญฮธฮฟฮดฮฟ main.
  • Code ฮ“ฯฮฑฮผฮผฮฎ 4: ฮ•ฮดฯŽ ฯ€ฮฑฮฏฯฮฝฮฟฯ…ฮผฮต ฮผฮนฮฑ ฮบฯฯฮนฮฑ ฮผฮญฮธฮฟฮดฮฟ ฯ„ฮทฯ‚ ฯ„ฮฌฮพฮทฯ‚.
  • Code ฮ“ฯฮฑฮผฮผฮฎ 6-7: ฮ•ฮดฯŽ ฮดฮทฮผฮนฮฟฯ…ฯฮณฮฟฯฮผฮต ฮผฮนฮฑ ฯ€ฮฑฯฮฟฯ…ฯƒฮฏฮฑ ฯ„ฮทฯ‚ ฮบฮปฮฌฯƒฮทฯ‚ Guruฮคฮฟ Thread3 (ฯ„ฮฟ ฮฟฯ€ฮฟฮฏฮฟ ฮดฮทฮผฮนฮฟฯ…ฯฮณฮตฮฏฯ„ฮฑฮน ฯƒฯ„ฮนฯ‚ ฯ€ฮฑฯฮฑฮบฮฌฯ„ฯ‰ ฮณฯฮฑฮผฮผฮญฯ‚ ฯ„ฮฟฯ… ฮบฯŽฮดฮนฮบฮฑ) ฯ‰ฯ‚ "threadguru1" ฮบฮฑฮน ฮพฮตฮบฮนฮฝฮฌฮผฮต ฯ„ฮฟ ฮฝฮฎฮผฮฑ.
  • Code ฮ“ฯฮฑฮผฮผฮฎ 8-9: ฮ•ฮดฯŽ ฮดฮทฮผฮนฮฟฯ…ฯฮณฮฟฯฮผฮต ฮผฮนฮฑ ฮฌฮปฮปฮท ฯ€ฮฑฯฮฟฯ…ฯƒฮฏฮฑ ฯ„ฮทฯ‚ ฮบฮปฮฌฯƒฮทฯ‚ Guruฮคฮฟ Thread3 (ฯ„ฮฟ ฮฟฯ€ฮฟฮฏฮฟ ฮดฮทฮผฮนฮฟฯ…ฯฮณฮตฮฏฯ„ฮฑฮน ฯƒฯ„ฮนฯ‚ ฯ€ฮฑฯฮฑฮบฮฌฯ„ฯ‰ ฮณฯฮฑฮผฮผฮญฯ‚ ฯ„ฮฟฯ… ฮบฯŽฮดฮนฮบฮฑ) ฯ‰ฯ‚ "threadguru2" ฮบฮฑฮน ฮพฮตฮบฮนฮฝฮฌฮผฮต ฯ„ฮฟ ฮฝฮฎฮผฮฑ.
  • Code ฮ“ฯฮฑฮผฮผฮฎ 11: ฮ•ฮดฯŽ ฮดฮทฮผฮนฮฟฯ…ฯฮณฮฟฯฮผฮต ฮผฮนฮฑ ฮบฮปฮฌฯƒฮท "GuruThread3โ€ ฯ„ฮฟ ฮฟฯ€ฮฟฮฏฮฟ ฯ…ฮปฮฟฯ€ฮฟฮนฮตฮฏ ฯ„ฮทฮฝ ฮตฮบฯ„ฮตฮปฮญฯƒฮนฮผฮท ฮดฮนฮตฯ€ฮฑฯ†ฮฎ (ฮธฮฑ ฯ€ฯฮญฯ€ฮตฮน ฮฝฮฑ ฯ…ฮปฮฟฯ€ฮฟฮนฮตฮฏฯ„ฮฑฮน ฮฑฯ€ฯŒ ฮฟฯ€ฮฟฮนฮฑฮดฮฎฯ€ฮฟฯ„ฮต ฮบฮปฮฌฯƒฮท ฯ„ฮทฯ‚ ฮฟฯ€ฮฟฮฏฮฑฯ‚ ฮฟฮน ฯ€ฮฑฯฮฟฯ…ฯƒฮฏฮตฯ‚ ฯ€ฯฮฟฮฟฯฮฏฮถฮฟฮฝฯ„ฮฑฮน ฮฝฮฑ ฮตฮบฯ„ฮตฮปฮตฯƒฯ„ฮฟฯฮฝ ฮฑฯ€ฯŒ ฯ„ฮฟ ฮฝฮฎฮผฮฑ.)
  • Code ฮ“ฯฮฑฮผฮผฮฎ 13-14: ฮ ฮฑฮฏฯฮฝฮฟฯ…ฮผฮต ฮดฯฮฟ ฮผฮตฯ„ฮฑฮฒฮปฮทฯ„ฮญฯ‚ ฮบฮปฮฌฯƒฮทฯ‚ ฮฑฯ€ฯŒ ฯ„ฮนฯ‚ ฮฟฯ€ฮฟฮฏฮตฯ‚ ฮท ฮผฮฏฮฑ ฮตฮฏฮฝฮฑฮน ฯ„ฮทฯ‚ ฮบฮปฮฌฯƒฮทฯ‚ ฯ„ฯฯ€ฮฟฯ… thread ฮบฮฑฮน ฮท ฮฌฮปฮปฮท ฯ„ฮทฯ‚ ฮบฮปฮฌฯƒฮทฯ‚ string.
  • Code ฮ“ฯฮฑฮผฮผฮฎ 15-18: ฯ…ฯ€ฮตฯฮนฯƒฯ‡ฯฮฟฯ…ฮผฮต ฯ„ฮฟฯ… Guruฮšฮฑฯ„ฮฑฯƒฮบฮตฯ…ฮฑฯƒฯ„ฮฎฯ‚ Thread3, ฮฟ ฮฟฯ€ฮฟฮฏฮฟฯ‚ ฮดฮญฯ‡ฮตฯ„ฮฑฮน ฮญฮฝฮฑ ฯŒฯฮนฯƒฮผฮฑ ฯ‰ฯ‚ ฯ„ฯฯ€ฮฟ ฯƒฯ…ฮผฮฒฮฟฮปฮฟฯƒฮตฮนฯฮฌฯ‚ (ฯ€ฮฟฯ… ฮตฮฏฮฝฮฑฮน ฯ„ฮฟ ฯŒฮฝฮฟฮผฮฑ ฯ„ฮฟฯ… ฮฝฮฎฮผฮฑฯ„ฮฟฯ‚) ฯ€ฮฟฯ… ฮฑฮฝฯ„ฮนฯƒฯ„ฮฟฮนฯ‡ฮฏฮถฮตฯ„ฮฑฮน ฯƒฯ„ฮท ฮผฮตฯ„ฮฑฮฒฮปฮทฯ„ฮฎ ฮบฮปฮฌฯƒฮทฯ‚ guruname ฮบฮฑฮน ฮตฯ€ฮฟฮผฮญฮฝฯ‰ฯ‚ ฮฑฯ€ฮฟฮธฮทฮบฮตฯฮตฯ„ฮฑฮน ฯ„ฮฟ ฯŒฮฝฮฟฮผฮฑ ฯ„ฮฟฯ… ฮฝฮฎฮผฮฑฯ„ฮฟฯ‚.
  • Code ฮ“ฯฮฑฮผฮผฮฎ 20: ฮ•ฮดฯŽ ฯ€ฮฑฯฮฑฮบฮฌฮผฯ€ฯ„ฮฟฯ…ฮผฮต ฯ„ฮท ฮผฮญฮธฮฟฮดฮฟ run() ฯ„ฮทฯ‚ ฮดฮนฮตฯ€ฮฑฯ†ฮฎฯ‚ ฮผฮต ฮดฯ…ฮฝฮฑฯ„ฯŒฯ„ฮทฯ„ฮฑ ฮตฮบฯ„ฮญฮปฮตฯƒฮทฯ‚.
  • Code ฮ“ฯฮฑฮผฮผฮฎ 21: ฮ•ฮพฮฌฮณฮฟฯ…ฮผฮต ฯ„ฮฟ ฯŒฮฝฮฟฮผฮฑ ฯ„ฮฟฯ… ฮฝฮฎฮผฮฑฯ„ฮฟฯ‚ ฯ‡ฯฮทฯƒฮนฮผฮฟฯ€ฮฟฮนฯŽฮฝฯ„ฮฑฯ‚ ฯ„ฮทฮฝ ฯ€ฯฯŒฯ„ฮฑฯƒฮท println.
  • Code ฮ“ฯฮฑฮผฮผฮฎ 22-31: ฮ•ฮดฯŽ ฯ‡ฯฮทฯƒฮนฮผฮฟฯ€ฮฟฮนฮฟฯฮผฮต ฮญฮฝฮฑฮฝ ฮฒฯฯŒฯ‡ฮฟ for ฮผฮต ฮผฮตฯ„ฯฮทฯ„ฮฎ ฮฑฯฯ‡ฮนฮบฮฟฯ€ฮฟฮนฮทฮผฮญฮฝฮฟ ฯƒฯ„ฮฟ 0, ฮบฮฑฮน ฮดฮตฮฝ ฯ€ฯฮญฯ€ฮตฮน ฮฝฮฑ ฮตฮฏฮฝฮฑฮน ฮผฮนฮบฯฯŒฯ„ฮตฯฮฟฯ‚ ฮฑฯ€ฯŒ 4 (ฮผฯ€ฮฟฯฮฟฯฮผฮต ฮฝฮฑ ฯ€ฮฌฯฮฟฯ…ฮผฮต ฮฟฯ€ฮฟฮนฮฟฮฝฮดฮฎฯ€ฮฟฯ„ฮต ฮฑฯฮนฮธฮผฯŒ, ฮตฯ€ฮฟฮผฮญฮฝฯ‰ฯ‚ ฮตฮดฯŽ ฮฟ ฮฒฯฯŒฯ‡ฮฟฯ‚ ฮธฮฑ ฯ„ฯฮญฮพฮตฮน 4 ฯ†ฮฟฯฮญฯ‚) ฮบฮฑฮน ฮฑฯ…ฮพฮฌฮฝฮฟฮฝฯ„ฮฑฯ‚ ฯ„ฮฟฮฝ ฮผฮตฯ„ฯฮทฯ„ฮฎ. ฮ•ฮบฯ„ฯ…ฯ€ฯŽฮฝฮฟฯ…ฮผฮต ฯ„ฮฟ ฯŒฮฝฮฟฮผฮฑ ฯ„ฮฟฯ… ฮฝฮฎฮผฮฑฯ„ฮฟฯ‚ ฮบฮฑฮน ฮตฯ€ฮฏฯƒฮทฯ‚ ฮบฮฌฮฝฮฟฯ…ฮผฮต ฯ„ฮฟ ฮฝฮฎฮผฮฑ ฮฝฮฑ ฮฑฮดฯฮฌฮฝฮตฮน ฮณฮนฮฑ 1000 ฯ‡ฮนฮปฮนฮฟฯƒฯ„ฮฌ ฯ„ฮฟฯ… ฮดฮตฯ…ฯ„ฮตฯฮฟฮปฮญฯ€ฯ„ฮฟฯ… ฮผฮญฯƒฮฑ ฯƒฮต ฮญฮฝฮฑ ฮผฯ€ฮปฮฟฮบ try-catch ฮบฮฑฮธฯŽฯ‚ ฮท ฮผฮญฮธฮฟฮดฮฟฯ‚ ฯฯ€ฮฝฮฟฯ… ฮฑฯ…ฮพฮฌฮฝฮตฮน ฯ„ฮทฮฝ ฮตฯ€ฮนฮปฮตฮณฮผฮญฮฝฮท ฮตฮพฮฑฮฏฯฮตฯƒฮท.
  • Code ฮ“ฯฮฑฮผฮผฮฎ 33: ฮ•ฮดฯŽ ฯ€ฮฑฯฮฑฮบฮฌฮผฯ€ฯ„ฮฟฯ…ฮผฮต ฯ„ฮท ฮผฮญฮธฮฟฮดฮฟ ฮญฮฝฮฑฯฮพฮทฯ‚ ฯ„ฮทฯ‚ ฮดฮนฮตฯ€ฮฑฯ†ฮฎฯ‚ ฮผฮต ฮดฯ…ฮฝฮฑฯ„ฯŒฯ„ฮทฯ„ฮฑ ฮตฮบฯ„ฮญฮปฮตฯƒฮทฯ‚.
  • Code ฮ“ฯฮฑฮผฮผฮฎ 35: ฮ’ฮณฮฌฮถฮฟฯ…ฮผฮต ฯ„ฮฟ ฮบฮตฮฏฮผฮตฮฝฮฟ "ฮคฮฟ ฮฝฮฎฮผฮฑ ฮพฮตฮบฮฏฮฝฮทฯƒฮต".
  • Code ฮ“ฯฮฑฮผฮผฮฎ 36-40: ฮ•ฮดฯŽ ฯ€ฮฑฮฏฯฮฝฮฟฯ…ฮผฮต ฮผฮนฮฑ ฯƒฯ…ฮฝฮธฮฎฮบฮท if ฮณฮนฮฑ ฮฝฮฑ ฮตฮปฮญฮณฮพฮฟฯ…ฮผฮต ฮฑฮฝ ฮท ฮผฮตฯ„ฮฑฮฒฮปฮทฯ„ฮฎ ฮบฮปฮฌฯƒฮทฯ‚ guruthread ฮญฯ‡ฮตฮน ฮฑฮพฮฏฮฑ ฮฎ ฯŒฯ‡ฮน. ฮ•ฮฌฮฝ ฮตฮฏฮฝฮฑฮน ฮผฮทฮดฮตฮฝฮนฮบฯŒ, ฯ„ฯŒฯ„ฮต ฮดฮทฮผฮนฮฟฯ…ฯฮณฮฟฯฮผฮต ฮญฮฝฮฑ ฯƒฯ„ฮนฮณฮผฮนฯŒฯ„ฯ…ฯ€ฮฟ ฯ‡ฯฮทฯƒฮนฮผฮฟฯ€ฮฟฮนฯŽฮฝฯ„ฮฑฯ‚ ฮบฮปฮฌฯƒฮท ฮฝฮฎฮผฮฑฯ„ฮฟฯ‚ ฯ€ฮฟฯ… ฯ€ฮฑฮฏฯฮฝฮตฮน ฯ„ฮฟ ฯŒฮฝฮฟฮผฮฑ ฯ‰ฯ‚ ฯ€ฮฑฯฮฌฮผฮตฯ„ฯฮฟ (ฯ„ฮนฮผฮฎ ฮณฮนฮฑ ฯ„ฮทฮฝ ฮฟฯ€ฮฟฮฏฮฑ ฮญฯ‡ฮตฮน ฮตฮบฯ‡ฯ‰ฯฮทฮธฮตฮฏ ฯƒฯ„ฮฟฮฝ ฮบฮฑฯ„ฮฑฯƒฮบฮตฯ…ฮฑฯƒฯ„ฮฎ). ฮœฮตฯ„ฮฌ ฮฑฯ€ฯŒ ฮฑฯ…ฯ„ฯŒ ฯ„ฮฟ ฮฝฮฎฮผฮฑ ฮพฮตฮบฮนฮฝฮฌ ฯ‡ฯฮทฯƒฮนฮผฮฟฯ€ฮฟฮนฯŽฮฝฯ„ฮฑฯ‚ ฯ„ฮท ฮผฮญฮธฮฟฮดฮฟ start().

ฮŒฯ„ฮฑฮฝ ฮตฮบฯ„ฮตฮปฮตฮฏฯ„ฮต ฯ„ฮฟฮฝ ฯ€ฮฑฯฮฑฯ€ฮฌฮฝฯ‰ ฮบฯŽฮดฮนฮบฮฑ, ฮปฮฑฮผฮฒฮฌฮฝฮตฯ„ฮต ฯ„ฮทฮฝ ฮฑฮบฯŒฮปฮฟฯ…ฮธฮท ฮญฮพฮฟฮดฮฟ:

ฮ ฮฑฯฮฌฮดฮตฮนฮณฮผฮฑ ฯ€ฮฟฮปฮปฮฑฯ€ฮปฯŽฮฝ ฮฝฮทฮผฮฌฯ„ฯ‰ฮฝ ฯƒฮต Java

ฮ ฮฑฯฮฑฮณฯ‰ฮณฮฎ:

ฮฅฯ€ฮฌฯฯ‡ฮฟฯ…ฮฝ ฮดฯฮฟ ฮฝฮฎฮผฮฑฯ„ฮฑ, ฮตฯ€ฮฟฮผฮญฮฝฯ‰ฯ‚, ฮปฮฑฮผฮฒฮฌฮฝฮฟฯ…ฮผฮต ฮดฯฮฟ ฯ†ฮฟฯฮญฯ‚ ฯ„ฮฟ ฮผฮฎฮฝฯ…ฮผฮฑ "ฮคฮฟ ฮฝฮฎฮผฮฑ ฮพฮตฮบฮฏฮฝฮทฯƒฮต".

ฮ ฮฑฮฏฯฮฝฮฟฯ…ฮผฮต ฯ„ฮฑ ฮฟฮฝฯŒฮผฮฑฯ„ฮฑ ฯ„ฮฟฯ… ฮฝฮฎฮผฮฑฯ„ฮฟฯ‚ ฯŒฯ€ฯ‰ฯ‚ ฯ„ฮฑ ฮญฯ‡ฮฟฯ…ฮผฮต ฮฒฮณฮฌฮปฮตฮน.

ฮœฯ€ฮฑฮฏฮฝฮตฮน ฯƒฯ„ฮฟฮฝ ฮฒฯฯŒฯ‡ฮฟ for ฯŒฯ€ฮฟฯ… ฮตฮบฯ„ฯ…ฯ€ฯŽฮฝฮฟฯ…ฮผฮต ฯ„ฮฟ ฯŒฮฝฮฟฮผฮฑ ฯ„ฮฟฯ… ฮผฮตฯ„ฯฮทฯ„ฮฎ ฮบฮฑฮน ฯ„ฮฟฯ… ฮฝฮฎฮผฮฑฯ„ฮฟฯ‚ ฮบฮฑฮน ฮฟ ฮผฮตฯ„ฯฮทฯ„ฮฎฯ‚ ฮพฮตฮบฮนฮฝฮฌ ฮผฮต 0.

ฮŸ ฮฒฯฯŒฯ‡ฮฟฯ‚ ฮตฮบฯ„ฮตฮปฮตฮฏฯ„ฮฑฮน ฯ„ฯฮตฮนฯ‚ ฯ†ฮฟฯฮญฯ‚ ฮบฮฑฮน ฮตฮฝฮดฮนฮฌฮผฮตฯƒฮฑ ฯ„ฮฟ ฮฝฮฎฮผฮฑ ฮฑฮดฯฮฌฮฝฮตฮน ฮณฮนฮฑ 1000 ฯ‡ฮนฮปฮนฮฟฯƒฯ„ฮฌ ฯ„ฮฟฯ… ฮดฮตฯ…ฯ„ฮตฯฮฟฮปฮญฯ€ฯ„ฮฟฯ….

ฮฉฯ‚ ฮตฮบ ฯ„ฮฟฯฯ„ฮฟฯ…, ฯ€ฯฯŽฯ„ฮฑ, ฯ€ฮฑฮฏฯฮฝฮฟฯ…ฮผฮต guru1 ฮผฮตฯ„ฮฌ guru2 ฮบฮฑฮน ฮผฮตฯ„ฮฌ ฯ€ฮฌฮปฮน guru2 ฮตฯ€ฮตฮนฮดฮฎ ฯ„ฮฟ ฮฝฮฎฮผฮฑ ฮบฮฟฮนฮผฮฌฯ„ฮฑฮน ฮตฮดฯŽ ฮณฮนฮฑ 1000 ฯ‡ฮนฮปฮนฮฟฯƒฯ„ฮฌ ฯ„ฮฟฯ… ฮดฮตฯ…ฯ„ฮตฯฮฟฮปฮญฯ€ฯ„ฮฟฯ… ฮบฮฑฮน ฮผฮตฯ„ฮฌ ฯ„ฮฟฮฝ ฮตฯ€ฯŒฮผฮตฮฝฮฟ guru1 ฮบฮฑฮน ฮพฮฑฮฝฮฌ ฯ„ฮฟฮฝ guru1, ฯ„ฮฟ ฮฝฮฎฮผฮฑ ฮบฮฟฮนฮผฮฌฯ„ฮฑฮน ฮณฮนฮฑ 1000 ฯ‡ฮนฮปฮนฮฟฯƒฯ„ฮฌ ฯ„ฮฟฯ… ฮดฮตฯ…ฯ„ฮตฯฮฟฮปฮญฯ€ฯ„ฮฟฯ…, ฮฟฯ€ฯŒฯ„ฮต ฯ€ฮฑฮฏฯฮฝฮฟฯ…ฮผฮต ฯ„ฮฟฮฝ guru2 ฮบฮฑฮน ฮผฮตฯ„ฮฌ ฯ„ฮฟฮฝ guru1.

ฮ ฮตฯฮฏฮปฮทฯˆฮท

ฮฃฮต ฮฑฯ…ฯ„ฯŒ ฯ„ฮฟ ฯƒฮตฮผฮนฮฝฮฌฯฮนฮฟ, ฮตฮฏฮดฮฑฮผฮต ฮตฯ†ฮฑฯฮผฮฟฮณฮญฯ‚ ฯ€ฮฟฮปฮปฮฑฯ€ฮปฯŽฮฝ ฮฝฮทฮผฮฌฯ„ฯ‰ฮฝ Java ฮบฮฑฮน ฯ€ฯŽฯ‚ ฮฝฮฑ ฯ‡ฯฮทฯƒฮนฮผฮฟฯ€ฮฟฮนฮฎฯƒฮตฯ„ฮต ฯ„ฮฟ single ฮบฮฑฮน ฯ„ฮฟ multi thread in Java.

  • ฮ•ฮพฮทฮณฮฎฯƒฯ„ฮต ฯ„ฮฟ multithreading in Java: ฯƒฯ„ฮฟ multithreading, ฮฟฮน ฯ‡ฯฮฎฯƒฯ„ฮตฯ‚ ฮดฮตฮฝ ฮฑฯ€ฮฟฮบฮปฮตฮฏฮฟฮฝฯ„ฮฑฮน ฮบฮฑฮธฯŽฯ‚ ฯ„ฮฑ ฮฝฮฎฮผฮฑฯ„ฮฑ ฮตฮฏฮฝฮฑฮน ฮฑฮฝฮตฮพฮฌฯฯ„ฮทฯ„ฮฑ ฮบฮฑฮน ฮผฯ€ฮฟฯฮฟฯฮฝ ฮฝฮฑ ฮตฮบฯ„ฮตฮปฮฟฯฮฝ ฯ€ฮฟฮปฮปฮฑฯ€ฮปฮญฯ‚ ฮปฮตฮนฯ„ฮฟฯ…ฯฮณฮฏฮตฯ‚ ฯ„ฮฑฯ…ฯ„ฯŒฯ‡ฯฮฟฮฝฮฑ
  • ฮคฮฑ ฮดฮนฮฌฯ†ฮฟฯฮฑ ฯƒฯ„ฮฌฮดฮนฮฑ ฯ„ฮฟฯ… ฮบฯฮบฮปฮฟฯ… ฮถฯ‰ฮฎฯ‚ ฯ„ฮฟฯ… ฮฝฮฎฮผฮฑฯ„ฮฟฯ‚ ฮตฮฏฮฝฮฑฮน,
    • ฮฮญฮฑ
    • ฮ”ฯ…ฮฝฮฑฯ„ฯŒฯ„ฮทฯ„ฮฑ ฮตฮบฯ„ฮญฮปฮตฯƒฮทฯ‚
    • ฮคฯฮญฮพฮนฮผฮฟ
    • ฮ‘ฮฝฮฑฮผฮฟฮฝฮฎ
    • ฮฮตฮบฯฯŒฯ‚
  • ฮœฮฌฮธฮฑฮผฮต ฮบฮฑฮน ฮณฮนฮฑ ฯƒฯ…ฮณฯ‡ฯฮฟฮฝฮนฯƒฮผฯŒฯ‚ ฮผฮตฯ„ฮฑฮพฯ ฮฝฮทฮผฮฌฯ„ฯ‰ฮฝ, ฯ€ฮฟฯ… ฮฒฮฟฮทฮธฮฟฯฮฝ ฯ„ฮทฮฝ ฮตฯ†ฮฑฯฮผฮฟฮณฮฎ ฮฝฮฑ ฮปฮตฮนฯ„ฮฟฯ…ฯฮณฮตฮฏ ฮฟฮผฮฑฮปฮฌ.
  • ฮ ฯฮฟฮณฯฮฑฮผฮผฮฑฯ„ฮนฯƒฮผฯŒฯ‚ ฯ€ฮฟฮปฮปฮฑฯ€ฮปฯŽฮฝ ฮฝฮทฮผฮฌฯ„ฯ‰ฮฝ ฯƒฮต Java ฮดฮนฮตฯ…ฮบฮฟฮปฯฮฝฮตฮน ฯ€ฮฟฮปฮปฮญฯ‚ ฯ€ฮตฯฮนฯƒฯƒฯŒฯ„ฮตฯฮตฯ‚ ฮตฯฮณฮฑฯƒฮฏฮตฯ‚ ฮตฯ†ฮฑฯฮผฮฟฮณฮฎฯ‚.

ฮฃฯ…ฮฝฮฟฯˆฮฏฯƒฯ„ฮต ฮฑฯ…ฯ„ฮฎฮฝ ฯ„ฮทฮฝ ฮฑฮฝฮฌฯฯ„ฮทฯƒฮท ฮผฮต: