Скачать программки на комп Карта сайта Samsung gt s3600 скачать игры Карта сайта Скачать дрожь земли 3 Карта сайта Tekken 6 скачать бесплатно торрент Карта сайта Катя чили скачать бесплатно Карта сайта Vkracker 5 скачать Карта сайта Скачать cell Карта сайта Скачать порно сестер Карта сайта Скачать суперзвезда Карта сайта Саруханов зачем вернулась ты скачать Карта сайта Ла2 скачать бесплатно Карта сайта Acdsee keygen скачать Карта сайта

06.27.07

Thread-uri în Java

Posted in Java at 12:12 am by rast

Iată-mă-s ajuns şi la capitolul Thread  :)   . Nevoia!

Fac o aplicaţie care trebuie să fie şi client şi server; şi care trebuie să comunice cu un automat programabil. Programatorii de la firma Moeller, care au pus bazale unei comunicaţii prin protocolul UDP, printr-un cablu de reţea, au realizat/programat o funcţie care “citeşte” port-ul specificat şi returnează o variabilă TRUE/FALSE, funcţie dacă a găsit date pe acel port. Programul nu se blochează, el rulează ciclic.

Pe PC nu se întâmplă tot aşa. Un program care “ascultă” un port, se “blochează” în acea funcţie care recepţionează mesajele.

Aşa şi în Java. Odată pornită funcţia de “receive”, ea “blochează” practic derulerea în continuare a programului. “De-blocarea” programului, practic trecerea de funcţia “receive”, se face doar atunci când pe portul specificat, s-au recepţionat nişte date. Dar dacă, în acest timp - de ascultare, vrei să trimiţi nişte date, programul este blocat, în aşteptarea unor date.

O primă soluţie, dar inconvenabilă pentru aplicaţia mea, ar fi 2 programe: unul să transmită şi celălalt să recepţioneze. Nu se poate adopta o astfel de soluţie deoarece trebuie o singură aplicaţie. Practic, aplicaţia se vrea o simulare a funcţionării unei staţii de fabricare a betonului. Şi acest lucru se face într-o strânsă comunicare bi-direcţională cu PLC-ul.

Soluţia optimă este, ca din programul principal (aplicaţia de simulare), să se execute un Thread, care să “asculte” portul dorit. Din aplicaţia Thread se pot schimba valorile unor variabile din aplicaţia principală, prin simpla lor declarare ca fiind de tip static.

Odată rezolvată problema comunicării bi-direcţionale, trebuie să merg mai departe  :)   şi să proiectez/programez tot restul aplicaţiei de simulare.

Works for me!!!

Leave a Comment