muzruno.com

Java потоци: Създаване и завършване

Java е език за програмиране на високо ниво, разработен от Sun Microsystems. Първоначално тя е създадена да разработва програми за приемници и преносими устройства, но по-късно стана популярен и търсен език за създаване на уеб приложения. Oracle придоби Sun Microsystems през януари 2010 г., така че Java вече се поддържа и разпространява от Oracle.

Java използва обектно-ориентиран програмен модел и може да се използва за създаване на приложения, които могат да се изпълняват на един компютър или да бъдат разпределени между сървъри и клиенти в мрежата. Тя може да се използва и за създаване на малък модул за приложение или аплета за използване като част от уеб страница.java потоци

предимства

Синтаксисът на Java е подобен на C ++, но е строго обектно-ориентиран програмен език. Например, повечето програми Java съдържат класове, които се използват за дефиниране на обекти и методи. Методите, от своя страна, се възлагат на отделни класове. Java също е известна като по-строга формална система от C ++. Това означава, че променливите и функциите трябва да бъдат изрично определени, че изходният код може да открива грешки или "изключения" по-лесно и по-бързо от другите езици. Това ограничава и други видове грешки, които могат да бъдат причинени от неопределени променливи или непризнати типове.

За разлика от изпълнимите Windows файлове (.EXE файлове) или Macintosh приложения (.APP файлове), Java програми не се стартират директно от операционната система. Вместо това данните се интерпретират от Java или JVM виртуална машина, която се изпълнява на различни платформи. Всички програми Java са мултиплатформени и могат да работят на различни платформи, включително Macintosh, Windows и Unix компютри. JVM трябва да се инсталира, за да може да се изпълняват приложения или аплети. Предлага се като безплатно изтегляне.

Елементи и принципи

Успехът и популярността на Java допринесоха за характеристиките на езика. Ние изброяваме основните от тях:

  • Програмите, създадени в Java, имат качеството на преносимост в мрежата. Изходният код се компилира по такъв начин, че езика за програмиране е байт код, който може да се управлява навсякъде в мрежата към сървъра или клиента с виртуална машина Java (JVM). JVM тълкува байткода в код, който ще работи върху хардуера на компютъра. За разлика от това, повечето езици за програмиране, като COBOL, C ++, Visual Basic или Smalltalk, компилират кода в двоичен файл. Двоични файлове са платформено независими, така че една програма, написана за компютър с Windows на Intel-базирани, не може да работи Mac, Linux-машина мейнфрейм или IBM. JVM да има допълнителна компилатор Просто във времето (JIT), която динамично компилира байткод в изпълним код, като алтернатива интерпретация на една инструкция байт код в даден момент. В много случаи динамичното компилиране на JIT е по-бързо от интерпретацията на виртуалната машина.

  • Надеждност на кода. За разлика от програмите, написани на C ++ и на някои други езици, Java обектите не съдържат препратки към външни данни или други известни обекти. Това гарантира, че инструкцията не съдържа адреса за съхранение на данни в друго приложение или в самата операционна система, в резултат на което програмата и самата операционна система могат да прекратят или да предизвикат неизправност. JVM изпълнява поредица от проверки на всеки обект, за да осигури цялостност.

  • Java е обектно-ориентиран език. Един обект може да се възползва от факта, че е част от обектен клас и наследява код, който е общ за класа. Този метод може да се разглежда като една от възможностите или поведението на обекта. Обектно ориентираният метод е относително често срещан в модерния пейзаж на програмирането, но още през 1996 г. само няколко езика ефективно прилагат обективно ориентирани концепции и дизайнерски модели.

  • Гъвкавост на аплетите. Аплетът Java има всички характеристики, предназначени за бързо стартиране.

  • Java е лесно да се учи. Синтаксисът на езика е подобен на C ++. Ако разработчикът притежава C / C ++ езици, изучаването на този език няма да бъде трудно.

  • Често срещано погрешно схващане е, че съществува връзка между Java и jаvascript. Тези езици имат подобен синтаксис, но от конструктивна гледна точка те са различни структури.

създаване на java потокплатформа

Има три ключови платформи, на които програмистите разработват Java приложения:

  • Java SE - прости самостоятелни приложения се разработват чрез Java Standard Edition. Преди известно като J2SE, Java SE предоставя всички приложни програмни интерфейси, необходими за разработването на традиционни приложения за настолни компютри.

  • Java EE - Java Enterprise Edition, известен преди като J2EE, дава възможност за създаване на компоненти от страна на сървъра, които могат да отговорят на уеб цикъла за заявка и отговор. Това споразумение ви позволява да създавате програми на Java, които могат да взаимодействат с Интернет клиенти, включително уеб браузъри, клиенти на CORBA и дори уеб услуги, базирани на REST и SOAP.

  • Java ME - Java също предоставя лесна платформа за мобилно развитие, известен като Java Micro Edition, известен преди като J2ME. Java ME се утвърди като много популярна платформа за разработване на вградени устройства, но се бори да успее в арена за развитие на смартфони. По отношение на развитието на смартфоните, Android се превърна в мобилна платформа за разработка.

Примери за използване

Използвайки различните компоненти, предоставени от Java EE, разработчиците могат лесно да пишат програми, които използват популярни модели за дизайн на софтуер и универсално последователни най-добри практики.

Структурите на Struts, Spring и JavaServer Faces използват сървър Java за внедряване на шаблона за дизайн на предния контролер, за да централизират заявките.java входни потоци

Междувременно по-голямата част от Java екосистемата е огромен брой проекти с отворен код, софтуерни платформи и приложни програмни интерфейси, които са създали общност, използваща езика. Например фондация "Апач" е домакин на различни проекти, написани с Java, включително:

  • Проста дървовидна рамка за Java (SLF4J).

  • Големи платформи за обработка на данни.

  • Интеграционни платформи като Apache Camel, Apache Axis и CXF за разработването на RESTful уеб услуги.

  • Платформи за развитие на микрослуги.

Други фирми ще се опитат да преведат средите на Java EE в облака. Тъй като разработчиците създават клауд услуги, способността за бързо мащабиране на тези услуги е ключов въпрос, както и способността да работят заедно в облака.

критика

Синтаксисът на Java често е осъден за подробности. Излишните настройващи и получаващи, силни пишете, правят Java програми подути. В отговор се оказа, че няколко периферни езика разрешават този проблем, включително и Groovy, който бързо започва да печели популярност.

Друг недостатък е, че програмите Java не могат да се мащабират линейно в света на високопроизводителните изчисления. Поради факта, че Java се отнася до обекти вътре, сложни и паралелни операции, основани на списъка, могат да доведат JVM да търси решения. Скалаският език решава много от недостатъците на езика Java, което намалява неговата мащабируемост.java примери за нишки

Java потоци

Потоците са парадигма на програмирането, създадена от Дж. Пол Родкер-Морисън в края на 60-те години, която използва концепцията за "обработка на данни" за проектиране и създаване на приложения. Потокът Java определя приложенията като процесни мрежи, които комуникират с блокове данни (информационни пакети), които пътуват през предварително определени връзки. Тези процеси могат да бъдат свързани безкрайно, за да образуват приложения без да променят вътрешното си съдържание. По този начин потокът е ориентиран към компонента.

Създаването на Java поток е специфична форма за програмиране на потока от данни. Той се основава на ограничени буфери, информационни пакети със специфични животински периоди, имена на портове и отделни определения на връзките.

Процесите взаимодействат чрез връзки, достъпни през пристанища. Връзките обикновено се изпълняват чрез ограничени буфери. Размерът на буфера или максималният брой пакети, които опашката може да съдържа, се нарича връзка на честотната лента. Някои реализации ви позволяват да установите връзки с капацитет от 0, което означава, че IP адресите на данните незабавно се прехвърлят между процесите на изпращане и получаване.

дефиниция

Поточното програмиране третира дадено приложение като набор от процеси ("черни кутии"), които комуникират чрез връзки към кои процеси се осъществяват чрез използване на портове. Процесът е инстанция на компонент, който работи едновременно с други процеси, включително други копия на същия компонент.



Един общ подход към стрийминг програмирането е да се концептуализира програмата като поредица от нишки и под потоци, които преминават през редица свързани процеси. Паралелизмът се реализира чрез ограничаване на комуникацията между процесите, използващи потоци от информационни пакети при завършване на Java нишката.java потоци от данни

Визуалното програмиране в този контекст включва свързването на текстови компоненти или графики в двуизмерен изглед, който използва способността да разпознава човешки образи и визуални стилове на мислене. Текстовото програмиране все още е налично на ниво компонент, а за прости приложения - на ниво мрежа.

Основните характеристики са кодовото повторно използване, тестваемостта и успоредността.

въведение

Поточното програмиране дефинира приложения, използващи метафората "фабрика за данни". Заявлението се разглежда не като един сериен процес, който започва в момент, а след това прави една операция за единица време, за да завърши, и като мрежа от асинхронни процеси, комуникиращи чрез потоци от структурирани данни блокове, наречени информационни пакети (IP). Мрежата се дефинира от външни процеси като списък от връзки, които се интерпретират от софтуер, обикновено наричан график.

Процесите взаимодействат чрез връзка с фиксиран капацитет. Връзката е свързана с процеса, като се използва порт, който има име, съответстващо на кода на процеса и дефиницията на мрежата. Същият код може да изпълни повече от един процес. Във всеки един момент този IP адрес може да принадлежи само на един процес или да бъде в пътя между два процеса. Пристанищата могат да бъдат просто или масивни.

Тъй като процесите на нишката на Java могат да продължат да се изпълняват толкова дълго, колкото е желателно с входни и изходни данни, приложенията, които използват този метод, обикновено работят по-малко време от нормалните програми и оптимално използват всички процесори на машината.

мрежа

Дефиницията на мрежата обикновено е схематична и се преобразува в списък с връзки в език или по-ниско ниво. Java I / O често е езикът на визуалното програмиране на това ниво. По-сложните дефиниции на мрежите имат йерархична структура, която се създава от подмрежи с гъвкави връзки за връзка. Други примери за Java нишки са базирани на по-традиционни езици за програмиране. По-специално, RaftLib използва C ++ и iostream-подобни оператори за изпълнение на Java поток.

Описание на процеса

Работата с Java нишки показва връзката на данните като най-слабата връзка между компонентите. Концепцията за свободна комуникация, от своя страна, е свързана с концепцията за ориентирани към обслужване архитектури. Резервоарът за Java конец отговаря на редица критерии за такава архитектура.нов поток

Методът на стрийминг стимулира стила на функционална спецификация на високо ниво, който опростява разработването на хипотетични предпоставки за поведение на системата. Пример за Java потоци е моделът за разпределение на данни за конструктивно създаване и анализ на семантиката на разпределените протоколи.

характеристики на

Поточното програмиране има следните уникални свойства:

  • Структуралност: Диаграмите и компонентите имат ясна структура (интерфейс, състояние и поведение).

  • Дизайнът на системата е разделен на два слоя: графичен (обикновено визуален) и компонент (обикновено текст). По отношение на софтуерната архитектура се насърчават различни роли. Като пример: Java нишките се контролират от функциите "Graph Designer" и "Component-Implementer".

  • Принцип на паралелизма: всеки процес се изпълнява в нишката, придружаващата го програма или друга среда.

  • Активиране - от гледна точка на дизайнера, точките от графика на процеса се изпълняват едновременно и функцията на програмиращия софтуер ви позволява да разпределите времето на процесора и да управлявате други услуги, ако е необходимо, за да поддържате тази функционалност.

  • Информационните пакети при създаване на Java поток имат жизнен цикъл и принадлежат само на един процес.

  • Компонентите могат да имат няколко входа или изхода.

  • Приложението е графика, а не дърво. Цикличните връзки (обратна връзка) са разрешени.

  • Връзките могат да се комбинират в графика, което означава, че пакети от различни дъги пристигат на входния порт. Връзките трябва да бъдат разделени чрез компонента поради разнообразието от стратегии за разделяне и правила за собственост на IP.

  • Връзките се изпълняват като ограничени буфери с обем от 0 до брой, ограничен от изпълнението.

примери

Компонентите на потоците данни от Java често формират допълващи двойки. В обикновената логика програмистът бързо открива, че нито структури за въвеждане, нито изходни структури не могат да бъдат използвани за контролиране на йерархията на повикванията на контролния поток. Във входните потоци на Java, самото описание на проблема предлага решение.

"Думите" са изрично споменати в описанието на проблема, така че разработчикът трябва да ги разглежда като информационни пакети (IP). При входните потоци в Java няма йерархия на единичните повиквания, така че програмистът няма нужда да дава приоритет.

Когато създавате поток от Java, пакетите с информация за източника (IIP) могат да се използват за определяне на параметрична информация, като например желаната дължина на изходния запис или имена на файлове. IIP са блокове данни, свързани с порт в дефиницията на мрежата, които стават "нормални" IP адреси, когато параметърът "received" се издава за съответния порт.работа с java потоци

Актуализиране на партидата

Този тип програма включва прехвърляне на информационния файл (промени, добавки и изтривания) към основния файл и създаване на актуализиран основен файл и един или повече отчети. Нов поток на Java е доста трудно да се кодира, като се използва синхронен процедурен код, защото два (понякога повече) входни потока трябва да бъдат синхронизирани.

В поточна архитектура компонентът за многократна употреба много опростява писането на този тип приложение, тъй като този инструмент съчетава две нишки и вмъква IP данни, за да покаже нивата на групиране. Да предположим, че един или два потока Java се състоят от IP адреси с ключови стойности 1, 2 и 3, а IP адресът на втората нишка има ключови стойности 11, 12, 21, 31, 32, 33 и 41, където първата цифра съответства на стойностите главния ключ. Използвайки скобите за представяне на IP адреси, събраният изходен поток ще изглежда така: (m1 d11 d12) (m2 d21) (m3 d31 d32d33) (d41).

Мултиплексни процеси

Поточното програмиране поддържа мултиплексиране на процесите. Тъй като компонентите са само за четене, всеки брой копия на този компонент ("процеси") може да се изпълнява асинхронно един с друг.

Когато компютрите имаха един процесор, това беше полезно, когато продължиха много операции за I / O на Java. Сега, когато машините имат няколко процесора, това става наистина полезно средство. Темите от Java Thread работят на принципа на мултитаскинг.

DrawFBP като инструмент

Поточното програмиране е парадигма, в която се създават програми от компоненти, които имат набор от специфични входни и изходни портове. Тези портове са свързани помежду си, за да създадат графика, която дефинира логиката и потока от данни. DrawFBP е настолно приложение, което може да дефинира графици за нишки за Java и C #. Това е най-функционално пълен потребителски интерфейс за стрийминг програмиране, но до известна степен е ограничен от възможностите на Java защитната стена и невъзможността за интроспекция на информацията, налична чрез интерфейса за изтегляне на компоненти.

Основна част от потребителския интерфейс е да се опрости създаването и разбирането на програмите въз основа на метода на потока.

Споделяне в социалните мрежи:

сроден