Skip to main content

Thread with Exception practice

(Only OCP)
public class TwoThreads {
    static Thread laurel, hardy;
public static void main(String[] args) {
    laurel = new Thread() {
public void run() {
    System.out.println("A");
    try {
        hardy.sleep(1000);
    } catch (Exception e) {
        System.out.println("B");
    }
        System.out.println("C");
    }
};
    hardy = new Thread() {
    public void run() {
System.out.println("D");
    try {
        laurel.wait();
    } catch (Exception e) {
        System.out.println("E");
    }
        System.out.println("F");
    }
};
        laurel.start();
        hardy.start();
    }
}
Explain by Azimli Javid
Bizdən istənilir ki, print olunan hərfləri tapaq.Burda vacib deyil hansı thread hansından bir az tez ya gec icra olunacaq.Əsas nəticələrdi, ardıclıllıq yox...Deməli 2 thread ə start verilir, laurel və hardy.laurel thread-də normaldı hər şey.sleep(long ms) methodu staticdi və cari icra olunan thread i yuxuya verir müəyyən zamanlıq(Thread.sleep(long ms) bu cür də yazıla bilər).Static method olduğu üçün hardy instance variable burda rol oynamır.(OOP hissədən izah etməyəcəm, çünki OCP-də advanced mövzuların öhdəsindən gəlmək üçün artıq OOP biliyi yaxşı olmalıdı.).laurel thread-i A və C print edir.İnteruptedException yaranmadığı üçün normal icra olunur.hardy thread-ə gəldikdə isə vəziyyət dəyişir.Burda D-ni print edir.Sonra isə gəlir laurel.wait() sətrinə(Bu method thread lər arasında synchronization olan zaman onların qarşılıqlı əlaqəsi üçündür.Object class-ından varis alınır.wait()/notify birgə işlənir).wait() və notify/notifyAll() methodları mütləq syncronized olunmuş object üzərində çağrılmalıdır.Syncronized olunmuş object üzərində çağrılmadığı üçün İllegalMonitorStateException verir və ötürülür catch blokuna E print olunur.Ardınca F print olunur.

Cavab: ACDEF

Comments

Popular posts from this blog

VMware -> root access is required for the operations you have chosen FIX ubuntu 14.04

Example ~$ wget https://www.vmware.com/go/tryworkstation-linux-64 [sudo] password for javad: *****  --2016-08-11 11:19:10--  https://www.vmware.com/go/tryworkstation-linux-64 Resolving www.vmware.com (www.vmware.com)... 104.86.190.190, 2a02:26f0:c000:183::2ef, 2a02:26f0:c000:190::2ef ..... .... ... .. . .. ... .... .....  ~$ sudo chmod +x tryworkstation-linux-64 ~$ sudo -i ~#  ~# cd / root@javad-quad:/# cd /home/javad/ root@javad-quad:/home/javad# ./tryworkstation-linux-64 Extracting VMware Installer...done. ... Product: VMware® Workstation 12 Pro Version: 12.1.1 build-3770994 licence key: VY1DU-2VXDH-08DVQ-PXZQZ-P2KV8 VF58R

fix audio in kali linux

1. leafpad /etc/pulse/daemon.conf 2. find "default-sample-channels" and change the number -->1-->save-->exit 3. pulseaudio start 4. pulseaudio --start Practice  root@javad:~# sudo leafpad /etc/pulse/daemon.conf  root@javad:~# pulseaudio start E: [pulseaudio] main.c: Too many arguments. root@javad:~# pulseaudio  --start W: [pulseaudio] main.c: This program is not intended to be run as root (unless --system is specified).  root@javad:~# reboot