powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Вопрос из кингтеста Sun Certified Programmer for the JAVA 2 Platform 1.4
15 сообщений из 40, страница 2 из 2
Вопрос из кингтеста Sun Certified Programmer for the JAVA 2 Platform 1.4
    #32996001
Зашедший
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wessen По тесту правильный ответ - D. Так оно и есть - если JVM реализует "зеленые" потоки (тестил под Linux) - потому что второй поток не получает ни кванта процессорного времени. Если же используются системные потоки - как под Windows - то все работает по варианту В.
Я тоже под линухом потестил, получился вариант В. Второй поток тоже получал управление, не понятно как, но получал.
А на какой JVM?
...
Рейтинг: 0 / 0
Вопрос из кингтеста Sun Certified Programmer for the JAVA 2 Platform 1.4
    #32996060
wessen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зашедший
А на какой JVM?

java version "1.4.2_06"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_06-b03)
Java HotSpot(TM) Client VM (build 1.4.2_06-b03, mixed mode)
...
Рейтинг: 0 / 0
Вопрос из кингтеста Sun Certified Programmer for the JAVA 2 Platform 1.4
    #32997372
javaScript != java
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а какой именно код вы тестили?
что-то я строчки println() не нашёл :)
...
Рейтинг: 0 / 0
Вопрос из кингтеста Sun Certified Programmer for the JAVA 2 Platform 1.4
    #32997455
wessen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
javaScript != javaа какой именно код вы тестили?
что-то я строчки println() не нашёл :)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
 package  maintest;


 public   class  Main  implements  Runnable {
    
     private   int  x;
     private   int  y;
    
     public   static   void  main(String[] args){
        Main that =  new  Main();
         new  Thread(that,"First").start();
         new  Thread(that,"Second").start();
    }
    
     public   void  run(){
         for  (;;){
            System.out.println(Thread.currentThread().getName()+". x="+x++);
            System.out.println(Thread.currentThread().getName()+". y="+y++);
        }
    }
}
результат
First. x=0
First. y=0
First. x=2
First. y=1
First. x=3
First. y=2
First. x=4
First. y=3
First. x=5
First. y=4
First. x=6
First. y=5
First. x=7
First. y=6
First. x=8
First. y=7
First. x=9
First. y=8
First. x=10
First. y=9
First. x=11
First. y=10
First. x=12
First. y=11
First. x=13
First. y=12
First. x=14
First. y=13
First. x=15
First. y=14
First. x=16
First. y=15
Second. x=1
Second. y=16
Second. x=17
Second. y=17
Second. x=18
Second. y=18
Second. x=19
Second. y=19
Second. x=20
Second. y=20
Second. x=21
Second. y=21
Second. x=22
Second. y=22
Second. x=23
Second. y=23
Second. x=24
Second. y=24
Second. x=25
Second. y=25
Second. x=26
Second. y=26
Second. x=27
Second. y=27
Second. x=28
Second. y=28
Second. x=29
Second. y=29
Second. x=30
Second. y=30
Second. x=31
Second. y=31
Second. x=32
Second. y=32
Second. x=33
Second. y=33
Second. x=34
Second. y=34
Second. x=35
Second. y=35
Second. x=36
Second. y=36
Second. x=37
Second. y=37
Second. x=38
Second. y=38
Second. x=39
Second. y=39
Second. x=40
Second. y=40
Second. x=41
Second. y=41
Second. x=42
Second. y=42
Second. x=43
Second. y=43
Second. x=44
Second. y=44
Second. x=45
Second. y=45
Second. x=47
Second. y=46
Second. x=48
Second. y=47
Second. x=49
Second. y=48
Second. x=50
Second. y=49
Second. x=51
Second. y=50
Second. x=52
Second. y=51
Second. x=53
Second. y=52
Second. x=54
Second. y=53
Second. x=55
Second. y=54
Second. x=56
Second. y=55
Second. x=57
Second. y=56
Second. x=58
Second. y=57
Second. x=59
Second. y=58
Second. x=60
Second. y=59
Second. x=61
Second. y=60
Second. x=62
Second. y=61
Second. x=63
Second. y=62
Second. x=64
Second. y=63
Second. x=65
Second. y=64
Second. x=66
Second. y=65
Second. x=67
Second. y=66
Second. x=68
Second. y=67
Second. x=69
Second. y=68
First. x=46
First. y=69
First. x=70
First. y=70
First. x=71
First. y=71
First. x=72
First. y=72
First. x=73
First. y=73
First. x=74
First. y=74
First. x=75
First. y=75
First. x=76
First. y=76
Second. x=77
Second. y=77
Second. x=78


Это под Линухом, в котором типа зеленые потоки. Иль я чего нить не так протестил?

зы Хотя приоритеты потоков действительно не работают.
...
Рейтинг: 0 / 0
Вопрос из кингтеста Sun Certified Programmer for the JAVA 2 Platform 1.4
    #32997523
переключаться потоки могут из-за использования system.out.print. Там наверняка есть какая-то синхронизация с консолью.
Нужно запустить два потока, во втором выводить систем аут - а в первом только х++ у++ - под линухом систем.ауты не должны вывестись...
...
Рейтинг: 0 / 0
Вопрос из кингтеста Sun Certified Programmer for the JAVA 2 Platform 1.4
    #32997687
wessen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
фантазируюпереключаться потоки могут из-за использования system.out.print. Там наверняка есть какая-то синхронизация с консолью.
Нужно запустить два потока, во втором выводить систем аут - а в первом только х++ у++ - под линухом систем.ауты не должны вывестись...

Я тоже много думал о систем.аутах :) В итоге решил все таки проверить.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
 public   class  Main  implements  Runnable {
    
     private   int  x;
     private   int  y;
    
     public   static   void  main(String[] args){
        Main that =  new  Main();
         new  Thread(that,"First").start();
         new  Thread(that,"Second").start();
    }
    
     public   void  run(){
         if (Thread.currentThread().getName().equals("First")){
             for  (;;){
                x++;
                y++;
            }
        } else {
             for  (;;){
                System.out.println(Thread.currentThread().getName()+". x="+x++);
                System.out.println(Thread.currentThread().getName()+". y="+y++);
            }
        }
    }
}

result (с самого начала)
init:
deps-jar:
Compiling 1 source file to /home/andrei/dev/projects/MainTest/build/classes
compile:
run:
Second. x=13994
Second. y=13994
Second. x=13995
Second. y=13995
Second. x=13996
Second. y=13996
Second. x=13997
Second. y=13997
Second. x=13998
Second. y=13998
Second. x=13999
Second. y=13999
Second. x=14000
Second. y=14000
Second. x=14001
Second. y=14001
Second. x=14002
Second. y=14002
Second. x=14003
Second. y=14003
Second. x=14004
Second. y=14004
Second. x=14005
Second. y=80911452
Second. x=80911453
Second. y=80911453
Second. x=80911454
Second. y=80911454
Second. x=80911455
Second. y=80911455
Second. x=80911456
Second. y=80911456


Как видно, 2-й поток все равно как то прорвался.
Может в последних версиях JVM потоки сделали менее зеленые? :)
...
Рейтинг: 0 / 0
Вопрос из кингтеста Sun Certified Programmer for the JAVA 2 Platform 1.4
    #32997797
Зашедший
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wessen
Как видно, 2-й поток все равно как то прорвался.
Может в последних версиях JVM потоки сделали менее зеленые? :)
Вполне возможно... я на JRE 1.3.1.05 тестировал под Mandrake 8. Сейчас попробую в другой конфигурации.
...
Рейтинг: 0 / 0
Вопрос из кингтеста Sun Certified Programmer for the JAVA 2 Platform 1.4
    #32997873
значит они хреново-зелёные.
ГетCurrentСред - тоже может быть дурацкой операцией.
ЛУчше разные мейны по втыкать.
...
Рейтинг: 0 / 0
Вопрос из кингтеста Sun Certified Programmer for the JAVA 2 Platform 1.4
    #32997889
я тоже
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а не, всё ок, геткуррент одыхает.
...
Рейтинг: 0 / 0
Вопрос из кингтеста Sun Certified Programmer for the JAVA 2 Platform 1.4
    #33000535
AlexS9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1. class Bar{}

1. class Test{
2. Bar doBar{
3. Bar b = new Bar();
4. return b;
5. }
6. public static void main(String[] args){
7. Test t = new Test();
8. Bar newBar = t.doBar();
9. System.out.println("newBar");
10. newBar = new Bar();
11. System.out.println("finished");
12. }
13.}


Возможно я не прав, но при выходе из метода doBar уберется ссылка b, но не
объект. Наверное это имелось ввиду в тесте. Т.е. не объект уберется, а ссылка.
...
Рейтинг: 0 / 0
Вопрос из кингтеста Sun Certified Programmer for the JAVA 2 Platform 1.4
    #33001209
Зашедший
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexS9Возможно я не прав, но при выходе из метода doBar уберется ссылка b, но не
объект. Наверное это имелось ввиду в тесте. Т.е. не объект уберется, а ссылка.
Нет, имелся в виду именно объект. Просто в тесткинге очень много ошибок - чуть ли не треть ответов неверные. Зато вопросы правильные и их можно прорешать самому :)
З.Ы. Сегодня сдал этот 310-035, 88% правильных ответов, из них Garbage collection - 100% правильных ответов. В реальном сановском тесте вопросы из кинга составили где-то половину.
...
Рейтинг: 0 / 0
Вопрос из кингтеста Sun Certified Programmer for the JAVA 2 Platform 1.4
    #33001269
NotGonnaGetUs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А где сдавал?
...
Рейтинг: 0 / 0
Вопрос из кингтеста Sun Certified Programmer for the JAVA 2 Platform 1.4
    #33001283
Зашедший
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NotGonnaGetUsА где сдавал?
RedCenter, территориально - МГУ.
...
Рейтинг: 0 / 0
Вопрос из кингтеста Sun Certified Programmer for the JAVA 2 Platform 1.4
    #33022594
NotGonnaGetUs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я тоже сдал там вчера.
Хотел 100% набрать, но не получилось :(
...
Рейтинг: 0 / 0
Вопрос из кингтеста Sun Certified Programmer for the JAVA 2 Platform 1.4
    #33050290
Зашедший
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NotGonnaGetUsЯ тоже сдал там вчера.
Хотел 100% набрать, но не получилось :(
Поздравляю! Главное - тест сдан : )
З.Ы. Кстати, мне уже соответствующий сертификейшн кит пришел... почти месяц письмо шло.
...
Рейтинг: 0 / 0
15 сообщений из 40, страница 2 из 2
Форумы / Java [игнор отключен] [закрыт для гостей] / Вопрос из кингтеста Sun Certified Programmer for the JAVA 2 Platform 1.4
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]