Отговори на тема  [ 62 мнения ]  Отиди на страница Предишна  1, 2, 3, 4, 5  Следваща
Писане на multithreaded applications 
Автор Съобщение
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пон Сеп 27, 2004 9:22 am
Мнения: 15501
Местоположение: София
Мнение 
smtp написа:
мисля че Цецо - всеки го "познава" :)
софтуерните му "умения" стигат до "компилиране" на "int main () {return 0;}"
т.е. софтуерния еквивалент на хардуерна "мигалка" !


:D :D :D :D :D :D

То бива комплексарщина и хормони.... ама твойто.... апропо, как си с акнето?

_________________
"Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.


Сря Юни 03, 2009 3:52 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Юни 10, 2007 2:22 pm
Мнения: 6492
Местоположение: София
Мнение 
Не е от хормоните, от главата е...

smtp, само защото на тебе ти е трудно да схванеш нещо не значи, че и с всички
останали е така.

Ако искаш да ни впечатлиш с това, колко те бива, покажи какво си направил.

_________________
-------------------
www.tgi-sci.com
-------------------
http://www.flickr.com/photos/didi_tgi/


Сря Юни 03, 2009 4:42 pm
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Юли 24, 2005 10:28 am
Мнения: 2658
Мнение 
хех, току що един колега изрева че в МТ плугина му ренди на точици, а със сигурност има повече опит от доста хора тука. :D
въобще, който си мисли че МТ програмирането е лесно е ламер.


Сря Юни 03, 2009 6:32 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Юни 10, 2007 2:22 pm
Мнения: 6492
Местоположение: София
Мнение 
zaphod написа:
хех, току що един колега изрева че в МТ плугина му ренди на точици, а със сигурност има повече опит от доста хора тука. :D
въобще, който си мисли че МТ програмирането е лесно е ламер.


Ако става дума за програмиране под MS боза, може и трудно да е, знам ли.
По-скоро ми изглежда невъзможно като гледам колко им е бавна реакцията дори
на user-ски действия. Ама те открай време наричат с познати имена на работещи
неща боклуците си, които са докарани колкото да излъжат средностатистическата
публика, че работят.
Въобще някой да ми говори за multi-task, multi-thread или както там избере
да нарече многозадачност за един или повече процесори от гледна точка на MS
е все едно да ми говори за формула-1 познавайки само валяка като нещо на колела...

_________________
-------------------
www.tgi-sci.com
-------------------
http://www.flickr.com/photos/didi_tgi/


Сря Юни 03, 2009 7:07 pm
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Юли 24, 2005 10:28 am
Мнения: 2658
Мнение 
тги, ептен ламерски се изказа. 8O 8O


Сря Юни 03, 2009 7:31 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Юни 10, 2007 2:22 pm
Мнения: 6492
Местоположение: София
Мнение 
zaphod написа:
тги, ептен ламерски се изказа. 8O 8O


Щом ти казваш. Сега остава и да обясниш защо.

_________________
-------------------
www.tgi-sci.com
-------------------
http://www.flickr.com/photos/didi_tgi/


Сря Юни 03, 2009 7:54 pm
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Юни 10, 2007 2:22 pm
Мнения: 6492
Местоположение: София
Мнение 
tgi написа:
zaphod написа:
тги, ептен ламерски се изказа. 8O 8O


Щом ти казваш. Сега остава и да обясниш защо.


[Edit] Обяснението със същината на multithreading-а при Intel само говори в полза
на примера ми с валяка. Наистина в тежка и смотана CISC архитектура отпреди 25+
години винаги има място за вкарване на паралелни действия, но то е именно защото
архитектурата е тромава. По-добре е с multithreading наистина, но и с него, и без
него е безнадеждно тромава архитектура сравнена например с power [/edit]

_________________
-------------------
www.tgi-sci.com
-------------------
http://www.flickr.com/photos/didi_tgi/


Сря Юни 03, 2009 8:05 pm
Профил WWW
Ранг: Почетен член
Ранг: Почетен член
Аватар

Регистриран на: Нед Окт 19, 2008 7:26 pm
Мнения: 673
Мнение 
Нищо не разбрах .... ама човека е дал пример , и ба му мамата бачка, въпреки природните закони 8O ???


Код:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "BMThread"
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::SynchroEvent1 ( TObject *Sender )
{
  Label2->Caption = Value1;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::SynchroEvent2 ( TBMThread * Sender, TBMExecuteThread *Thread, void *&Data )
{
  TLabel *Label = (TLabel *)Data;
  Label->Caption = Value2;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BMThread1Execute( TObject *Sender,
      TBMExecuteThread *Thread, void *&Data)
{
  Value1 = 0;
  for ( int i = 0; i < 1000; i ++ )
    {
    Thread->PercentProgress = i / 10;
    SleepEx ( 20, false );
    if ( Thread->Terminated )
      break;

    Value1 ++;
    Thread->Synchronize ( &SynchroEvent1 );
    }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  BMThread1->Start ();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BMThread1Terminate(TObject *Sender,
      TBMExecuteThread *Thread, void *&Data)
{
  Label1->Caption = "Stop";
  Button1->Enabled = true;
  Button2->Enabled = false;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BMThread1Start(TObject *Sender,
      TBMExecuteThread *Thread, void *&Data)
{
  Label1->Caption = "Start";
  Button1->Enabled = false;
  Button2->Enabled = true;

  Data = Label2;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
  BMThread1->Stop ();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
  BMThread2->Start ();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button4Click(TObject *Sender)
{
  BMThread2->Stop ();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCloseQuery(TObject *Sender, bool &CanClose)
{
  BMThreadGroup1->Stop ();
  while ( BMThreadGroup1->Runing )
    Application->ProcessMessages ();
}
//---------------------------------------------------------------------------

void __fastcall TForm1::BMThreadGroup1Start(TObject *Sender,
      TBMExecuteThread *Thread, void *&Data)
{
  ProgressBar1->Position = 0;
  Label5->Visible = true;
  ProgressBar1->Visible = true;
  ButtonStopAll->Enabled = true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BMThreadGroup1Terminate(TObject *Sender,
      TBMExecuteThread *Thread, void *&Data)
{
  Label5->Visible = false;
  ProgressBar1->Visible = false;
  ProgressBar1->Position = 0;
  ButtonStopAll->Enabled = false;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BMThreadGroup1Update(TObject *Sender,
      TBMExecuteThread *Thread, void *&Data, int Percent)
{
  if ( Sender == BMThread1 )
    Label5->Caption = "Thread 1 :";
   
  else
    Label5->Caption = "Thread 2 :";

  ProgressBar1->Position = Percent;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BMThread2Execute(TObject *Sender,
      TBMExecuteThread *Thread, void *&Data)
{
  Value2 = 0;
  for ( int i = 0; i < 1000; i ++ )
    {
    Thread->PercentProgress = i / 10;
    SleepEx ( 20, false );
    if ( Thread->Terminated )
      break;

    Value2 ++;
    Thread->Synchronize ( &SynchroEvent2, Data );
    }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BMThread2Start(TObject *Sender,
      TBMExecuteThread *Thread, void *&Data)
{
  Label3->Caption = "Start";
  Button3->Enabled = false;
  Button4->Enabled = true;

  Data = Label4;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BMThread2Terminate(TObject *Sender,
      TBMExecuteThread *Thread, void *&Data)
{
  Label3->Caption = "Stop";
  Button3->Enabled = true;
  Button4->Enabled = false;
}
//---------------------------------------------------------------------------


void __fastcall TForm1::ButtonStopAllClick(TObject *Sender)
{
  BMThreadGroup1->Stop ();
}
//---------------------------------------------------------------------------



Делкам атача поради слаб интерес и safe na место 8)


Последна промяна RM на Вто Юни 09, 2009 1:20 pm, променена общо 2 пъти



Сря Юни 03, 2009 9:30 pm
Профил
Ранг: Популярен
Ранг: Популярен
Аватар

Регистриран на: Сря Окт 11, 2006 8:19 pm
Мнения: 373
Местоположение: София/Edinburgh, UK
Мнение 
С риск да бъда заклеймен като ламер (не че ми пука) ще кажа, че се занимвам в момента с многонишков софтуер, базиран на .NET и C#. Софтуера слуша стриймове по HTTP и ги обрабова по най - различни начини, като включително визуализира информацията. Отначалото пуснах няколко нишки и си работеше, докато не продължих да го надграждам и изведнъж се появиха мистериозни бъгове и чак тогава открих една книжка специално по темата. Общо взето, ако ти трябва някаква не много сложна комуникация между няколко треда няма проблем, дори и по най - ламерския начин да е реализирана. Но ако станат повече тредове и редовно боравят с общи ресурси се започва ... опашки със задачи, семафори, заключване на рам и т.н. :) Но за да гарантираш надеждност определено трябва да си наясно със последните неща, които споменах. Иначе си е любителска работа, но то всеки от там почва, дори и да е по работа :)

_________________
Българският портал за РОБОТИКА


Чет Юни 04, 2009 12:06 pm
Профил
Ранг: Професионалист
Ранг: Професионалист
Аватар

Регистриран на: Сря Май 11, 2005 3:47 pm
Мнения: 534
Мнение 
smtp написа:
мисля че Цецо - всеки го "познава" :)
софтуерните му "умения" стигат до "компилиране" на "int main () {return 0;}"
т.е. софтуерния еквивалент на хардуерна "мигалка" !

пак повтарям - разпаралелването и синхронизациите на процесите си е единственно работа на програмиста !
ОС-а осигурява синхронизация до собственните си ресурси и дава средства за това на приложенията, но вътре в самите приложение - това е задача на програмиста и е силно зависимо от конкретната задача !


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

Живееме в малка държава, в която всички се познаваме, малко или повече, не се знае утре къде ще се срещнем ... колегата Цецо Мудров е изключителен професионалист, така че ако може си спестявайте комплексите по негов адрес.


Чет Юни 04, 2009 1:50 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Фев 26, 2006 6:52 pm
Мнения: 11266
Местоположение: Добрич
Мнение 
Много странна дискусия 8O

Програмист, който не умее да използва поне до някаква степен мнгозадачност е като човек който не познaва топлата вода - миризлива работа :D

Що се отнася до архитектурите имащи принос - те са две. Първата архитектура (или по-скоро група архитектури има най-голямо значение) - това са мейнфремките на DEC (vax/pdp) и на IBM (system 360...). Другата архитектура е х86. Точка.

Всичко остнало като PPC, ARM, MIPS и ала-бала са от графите - интересно, куриозно, любопитно и прочие. Но това са неща дето нямат принос към теорията и практиката.

За съжаление мейнфремчетата вече са като динозаврите (музейна рядкост). Така че имаме една архитектура и тая архитектура се доминира от една операционна система. Това са фактите! Харесва ни - не ни харесва - това е положението Минке!
---
Сега да си говорим че най-масовата архитектура с най-масовата ОС има проблем с нещо толкова фундаментално е несериозно. Няма проблем нито с x86 нито с MS бозата, ако имаше щеше да е лесно някой да ги избута от пазара. Но уви, няма проблем и не е лесно да бъдат изместени. Това не означава че няма по-добри решение - има... Възможно е и ДДС-то или ДПС-то на tqi барабар с ППС архитектурата да са по-добро решение. Но това няма значение - щото за 5% или 10% подобрение аз няма да си хвърля дипломата и да седна да ги разучавам.
Трябва да се предложи нещо значително по-добро, но уви никой досега не го е предложил :( Само имат претенции да са много по-добри, а всъщност са валяци или в най-добрия случай малко по-бързи търтонетки....


Чет Юни 04, 2009 2:04 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Юни 10, 2007 2:22 pm
Мнения: 6492
Местоположение: София
Мнение 
Миро, толкова много глупости накуп си изписал,та не ми се навлиза и в детайли
защо са глупости.
Прочети малко и опитай пак. Очевидно не знаеш нито power, нито x86.

[edit] И нямам въобще предвид DPS-а, него го оставяме на мира засега.
Ако само погледнеш докъде са отишли 64-битовите power безумия на IBM, с които
правят каквото правят - не за масовия потребител, естествено, но тук се очаква
погледът да не е като на хора от улицата - ще ти се завие свят (ако си късметлия
да ти се размине само с това). X86 е стара допотопна мърсотия (открай време е
последното), която обслужва масовата публика, хем да има нещо святкащо в ръцете,
хем да няма истински компютри, че те могат да бъдат и опасни.
[/quote]

_________________
-------------------
www.tgi-sci.com
-------------------
http://www.flickr.com/photos/didi_tgi/


Последна промяна tgi на Чет Юни 04, 2009 3:21 pm, променена общо 1 път



Чет Юни 04, 2009 3:00 pm
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Ное 12, 2004 3:38 pm
Мнения: 9103
Местоположение: Chicago, IL
Мнение 
tqi, не че много ми разбира главата от многонишкови неща, ама имам един въпрос - след като power архитектурата е толкова супер-дупер по-по-най защо Епъл я смениха с х86? Толкова ли са прости, или ти последно когато си се занимавал с х86 е било от времето на 8086 :) ?


Чет Юни 04, 2009 3:20 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пон Сеп 27, 2004 9:22 am
Мнения: 15501
Местоположение: София
Мнение 
Фитила, не се коси бе. Той smtp е ясен. Не ми е в къщата, че да го мисля :) Жив и здрав да е, утре нобелова награда за програмиране да вземе дано.

Ама тия двамата горните (miro и tqi) като седнат да се дърлят ми иде да хвана дървото. :evil:

Що бе джанъм се държите като пъпчиви тинейджърки, дето спорят за качествата на пишките на гаджета си?.... Всъщност знам защо. Щото на маса не сте се срещали (това е критика).

_________________
"Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.


Чет Юни 04, 2009 3:21 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Юни 10, 2007 2:22 pm
Мнения: 6492
Местоположение: София
Мнение 
Dimitar написа:
tqi, не че много ми разбира главата от многонишкови неща, ама имам един въпрос - след като power архитектурата е толкова супер-дупер по-по-най защо Епъл я смениха с х86? Толкова ли са прости, или ти последно когато си се занимавал с х86 е било от времето на 8086 :) ?


Не знам. Какво предполагам става очевидно от добавеното с редакция към предишния
ми пост. Публичните приказки тогава бяха, че Freescale не смогвали да произведат каквото
им трябва на apple - може и да е вярно, на intel процесите им са по-добри, май само IBM
имат съпоставими (процеси, не архитектури).

Но не е голяма загуба. Apple бяха и си останаха в бижутерския сектор, така и никога не
разсекретиха хардуера си отвътре (дават го засекретен, достъпен през нещо, което
наричат "open firmware", LOL).
Горе-долу същото правят и sony с playstatio-3 - cell процесорът е е чудесен и
документиран, но периферните чипове са дълбоко секретни. MS с техния XBOX пък
дори и процесора не са разкрили (3 64 битови power ядра, толкова се знае).
В тоя ред на мисли може и моите подозрения да се окажат верни, прекалено еднакво
е поведението откъм секретност на всички, които направят нещо от някаква изчислителна
мощност нагоре.
Но и не знам в детайли нито едната система, та дори и не знам би ли си струвало човек да има
документация, та да може да я програмира - не че не ми се ще, и то как. да портна DPS-а на 64
битова платформа и да давам напред, ама няма къде.

_________________
-------------------
www.tgi-sci.com
-------------------
http://www.flickr.com/photos/didi_tgi/


Чет Юни 04, 2009 3:33 pm
Профил WWW
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 62 мнения ]  Отиди на страница Предишна  1, 2, 3, 4, 5  Следваща

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 0 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни