უახლესი სტატიები
მთავარი / ინტერნეტი / ანემიური დისკუსიის თემა php. მრავალძაფიანი გამოთვლა PHP-ში: pthreads. რა არის ძაფები

ანემიური დისკუსიის თემა php. მრავალძაფიანი გამოთვლა PHP-ში: pthreads. რა არის ძაფები

როგორც ჩანს, PHP დეველოპერები იშვიათად იყენებენ კონკურენტულობას. მე არ ვისაუბრებ სინქრონული კოდის სიმარტივეზე, რა თქმა უნდა, უფრო მარტივი და ნათელია, მაგრამ ზოგჯერ მცირე გამოყენებაპარალელიზმა შეიძლება მოიტანოს შესრულების მნიშვნელოვანი გაუმჯობესება.

ამ სტატიაში ჩვენ გადავხედავთ, თუ როგორ შეიძლება მიღწეული იყოს მრავალძაფიანი PHP-ში pthreads გაფართოების გამოყენებით. ამისათვის დაგჭირდებათ PHP 7.x-ის ZTS (Zend Thread Safety) ვერსია დაინსტალირებული. დაინსტალირებული გაფართოება pthreads v3. (წერის დროს, PHP 7.1-ში, მომხმარებლებს დასჭირდებათ დააინსტალირონ ძირითადი ფილიალიდან pthreads საცავში - იხილეთ მესამე მხარის გაფართოება.)

მცირე განმარტება: pthreads v2 განკუთვნილია PHP 5.x-ისთვის და აღარ არის მხარდაჭერილი, pthreads v3 არის PHP 7.x-ისთვის და აქტიურად ვითარდება.

ასეთი გადახრის შემდეგ პირდაპირ საქმეზე გადავიდეთ!

ერთჯერადი დავალებების დამუშავება

ზოგჯერ გსურთ ერთჯერადი ამოცანების დამუშავება მრავალ ხრახნიანი გზით (მაგალითად, შეასრულეთ I/O-შებმული დავალება). ასეთ შემთხვევებში, თქვენ შეგიძლიათ გამოიყენოთ Thread კლასი ახალი თემის შესაქმნელად და ცალკე ძაფზე გარკვეული დამუშავების გასაშვებად.

მაგალითად:

$task = ახალი კლასი აფართოებს თემას ( პირადი $response; საჯარო ფუნქციის გაშვება() ( $content = file_get_contents ("http://google.com"); preg_match ("~ (.+)~", $content, $matches); $this->response = $matches; )); $task->start() && $task->join(); var_dump($task->response); // string (6) "გუგლი"

აქ Run მეთოდი არის ჩვენი დამუშავება, რომელიც შესრულდება ახალი თემის შიგნით. როდესაც Thread::start გამოიძახება, ახალი თემა წარმოიქმნება და გამოიძახება run მეთოდი. ჩვენ შემდეგ ვუერთებთ შვილო ძაფს მთავარ ძაფში Thread::join-ის გამოძახებით, რომელიც დაიბლოკება მანამ, სანამ ბავშვური თემა არ დასრულდება. ეს უზრუნველყოფს დავალების შესრულებას მანამ, სანამ ჩვენ შევეცდებით შედეგის დაბეჭდვას (რომელიც ინახება $task->response-ში).

შეიძლება არ იყოს სასურველი კლასის დაბინძურება დამატებითი პასუხისმგებლობებით, რომლებიც დაკავშირებულია ნაკადის ლოგიკასთან (მათ შორის, გაშვების მეთოდის განსაზღვრის პასუხისმგებლობა). ჩვენ შეგვიძლია განვასხვავოთ ასეთი კლასები Threaded კლასიდან მათი მემკვიდრეობით. შემდეგ მათი გაშვება შესაძლებელია სხვა ძაფში:

Class Task აფართოებს Threaded ( საჯარო $response; საჯარო ფუნქცია someWork() ( $content = file_get_contents ("http://google.com"); preg_match ("~ (.+) ~", $content, $matches); $ this->response = $matches ) ) $task = new Task; $thread = new class($task) აფართოებს Thread ( კერძო $task; საჯარო ფუნქცია __construct (Threaded $task) ( $this->task = $task; ) საჯარო ფუნქცია run() ( $this->task->someWork( ) ); $thread->start() && $thread->join(); var_dump($task->response);

ნებისმიერი კლასი, რომელიც უნდა გაიაროს ცალკე თემაში უნდამემკვიდრეობა Threaded კლასიდან. ეს იმიტომ ხდება, რომ ის უზრუნველყოფს აუცილებელ შესაძლებლობებს სხვადასხვა ძაფებზე დამუშავების შესასრულებლად, ასევე იმპლიციტურ უსაფრთხოებასა და სასარგებლო ინტერფეისებს (როგორიცაა რესურსების სინქრონიზაცია).

მოდით შევხედოთ კლასის იერარქიას, რომელსაც გვთავაზობს pthreads გაფართოება:

Threaded (ახორციელებს Traversable, Collectable) Thread Worker Volatile Pool

ჩვენ უკვე გავაშუქეთ და ვისწავლეთ Thread და Threaded კლასების საფუძვლები, ახლა მოდით გადავხედოთ დანარჩენ სამს (Worker, Volatile და Pool).

ძაფების ხელახალი გამოყენება

ახალი თემის დაწყება თითოეული ამოცანისთვის, რომელიც პარალელიზებას საჭიროებს, საკმაოდ ძვირია. ეს იმიტომ ხდება, რომ საერთო-არაფრის არქიტექტურა უნდა განხორციელდეს pthread-ებში, რათა მივაღწიოთ მრავალნაკადს PHP-ში. რაც ნიშნავს, რომ PHP თარჯიმანის მიმდინარე ინსტანციის მთელი შესრულების კონტექსტი (ყველა კლასის, ინტერფეისის, მახასიათებლისა და ფუნქციის ჩათვლით) უნდა იყოს კოპირებული თითოეული შექმნილი ძაფისთვის. იმის გამო, რომ ამას აქვს შესამჩნევი გავლენა შესრულებაზე, ნაკადი ყოველთვის უნდა იქნას გამოყენებული, როდესაც ეს შესაძლებელია. ძაფების ხელახლა გამოყენება შესაძლებელია ორი გზით: Workers ან Pools-ის გამოყენებით.

Worker კლასი გამოიყენება რიგი ამოცანების სინქრონულად შესასრულებლად სხვა თემაში. ეს კეთდება ახალი Worker ინსტანციის შექმნით (რომელიც ქმნის ახალ თემას) და შემდეგ ამოცანების გადატანით ცალკე thread-ის სტეკზე (Work::stack-ის გამოყენებით).

აი პატარა მაგალითი:

Class Task აფართოებს Threaded ( კერძო $value; საჯარო ფუნქცია __construct(int $i) ( $this->value = $i; ) საჯარო ფუნქცია run() ( usleep(250000); echo "Task: ($this->value) \n"; ) ) $worker = new Worker(); $worker->start(); for ($i = 0; $i stack(new Task($i)); ) while ($worker->collect()); $worker->shutdown();

ზემოთ მოყვანილ მაგალითში, $worker ობიექტის 15 დავალება გადატანილია სტეკზე Worker::stack მეთოდის მეშვეობით, და შემდეგ ისინი მუშავდება იმ თანმიმდევრობით, როგორც იქნა დაყენებული. Worker::collect მეთოდი, როგორც ზემოთ არის ნაჩვენები, გამოიყენება ამოცანების გასასუფთავებლად, როდესაც ისინი დაასრულებენ შესრულებას. მასთან ერთად, while მარყუჟის შიგნით, ჩვენ ვბლოკავთ მთავარ თემას, სანამ სტეკის ყველა დავალება არ დასრულდება და გასუფთავდება - სანამ Worker::shutdown-ს დავუძახებთ. მუშაკის ნაადრევად შეწყვეტა (ანუ სანამ ჯერ კიდევ არის შესასრულებელი ამოცანები) კვლავ დაბლოკავს მთავარ თემას, სანამ ყველა დავალება არ დაასრულებს მათ შესრულებას, უბრალოდ, რომ ამოცანები არ შეგროვდეს ნაგავი (რაც გულისხმობს მეხსიერების გაჟონვას).

Worker კლასი გთავაზობთ რამდენიმე სხვა მეთოდს, რომლებიც დაკავშირებულია მის ამოცანების დასტასთან, მათ შორის Worker::unstack ბოლო stacked ამოცანის ამოსაღებად და Worker::getStacked ამოცანების რაოდენობის მისაღებად შესრულების სტეკში. მუშათა დასტა შეიცავს მხოლოდ დავალებებს, რომლებიც უნდა შესრულდეს. მას შემდეგ, რაც დასტაზე დავალება დასრულდება, ის ამოღებულია და მოთავსებულია ცალკე (შიდა) დასტაზე ნაგვის შეგროვებისთვის (Work::collect მეთოდის გამოყენებით).

ძაფების ხელახლა გამოყენების კიდევ ერთი გზა მრავალ ამოცანებში არის thread pool-ის გამოყენება (Pool კლასის მეშვეობით). ძაფების ფონდი იყენებს მუშათა ჯგუფს დავალებების შესასრულებლად ერთდროულად, რომელშიც კონკურენტულობის კოეფიციენტი (აუზის ძაფების რაოდენობა, რომლითაც ის მუშაობს) დაყენებულია აუზის შექმნისას.

მოდით მოვარგოთ ზემოხსენებული მაგალითი მუშათა ჯგუფის გამოსაყენებლად:

Class Task აფართოებს Threaded ( კერძო $value; საჯარო ფუნქცია __construct(int $i) ( $this->value = $i; ) საჯარო ფუნქცია run() ( usleep(250000); echo "Task: ($this->value) \n"; ) ) $pool = new Pool(4); for ($i = 0; $i გაგზავნა(ახალი ამოცანა($i)); ) while ($pool->collect()); $pool->shutdown();

არსებობს რამდენიმე შესამჩნევი განსხვავება მუშისგან განსხვავებით აუზის გამოყენებისას. პირველ რიგში, აუზს არ სჭირდება ხელით გაშვება, ის იწყებს ამოცანების შესრულებას, როგორც კი ისინი ხელმისაწვდომი გახდება. მეორეც, ჩვენ გაგზავნაამოცანები აუზზე, არა მოათავსეთ ისინი დასტაზე. გარდა ამისა, Pool კლასი არ იღებს მემკვიდრეობას Threaded-ისგან და, შესაბამისად, არ შეიძლება გადავიდეს სხვა ძაფებზე (განსხვავებით Worker-ისგან).

კარგი პრაქტიკაა მუშაკებისთვის და აუზებისთვის, რომ ყოველთვის გაასუფთავონ თავიანთი ამოცანები, როგორც კი ისინი დაასრულებენ და შემდეგ ხელით შეწყვიტონ ისინი. Thread კლასის გამოყენებით შექმნილი ძაფები ასევე უნდა დაერთოს მშობელ ძაფს.

ძაფები და (არა) ცვალებადობა

ბოლო კლასი, რომელსაც შევეხებით არის Volatile, ახალი დამატება pthreads v3. უცვლელობა გახდა მნიშვნელოვანი კონცეფცია თრეადებში, რადგან მის გარეშე შესრულება მნიშვნელოვნად ზარალდება. ამიტომ, ნაგულისხმევად, Threaded კლასების თვისებები, რომლებიც თავად არიან Threaded ობიექტები, ახლა უცვლელია და, შესაბამისად, მათი გადაწერა შეუძლებელია მათი საწყისი მინიჭების შემდეგ. ასეთი თვისებების აშკარა ცვალებადობა ამჟამად სასურველია და მისი მიღწევა მაინც შესაძლებელია ახალი არასტაბილური კლასის გამოყენებით.

მოდით შევხედოთ მაგალითს, რომელიც აჩვენებს უცვლელობის ახალ შეზღუდვებს:

Class Task აფართოებს Threaded // Threaded კლასს ( საჯარო ფუნქცია __construct() ( $this->data = new Threaded(); // $this->მონაცემები არ არის გადაწერილი, რადგან ეს არის Threaded თვისება Threaded კლასის ) ) $task = new class(new Task()) აფართოებს Thread-ს ( // a Threaded კლასს, ვინაიდან Thread აფართოებს Threaded საჯარო ფუნქციას __construct($tm) ($this->threadedMember = $tm; var_dump($this->threadedMember-> data // object(Threaded)#3 (0) () $this->threadedMember = new StdClass( // არასწორია, ვინაიდან თვისება Threaded კლასის წევრია) );

მეორეს მხრივ, არასტაბილური კლასების ხრახნიანი თვისებები ცვალებადია:

Class Task აფართოებს Volatile ( საჯარო ფუნქცია __construct() ( $this->data = new Threaded(); $this->data = new StdClass(); // მოქმედებს, რადგან ჩვენ ვართ არასტაბილურ კლასში ) ) $task = new class(new Task()) აფართოებს Thread-ს ( საჯარო ფუნქცია __construct($vm) ($this->volatileMember = $vm; var_dump($this->volatileMember->data); // ობიექტი(stdClass)#4 (0) () // ჯერ კიდევ არასწორია, რადგან Volatile აფართოებს Threaded-ს, ამიტომ თვისება კვლავ არის Threaded კლასის $this->volatileMember = new StdClass() );

ჩვენ ვხედავთ, რომ Volatile კლასი არღვევს უცვლელობას, რომელიც დაწესებულია მისი მშობელი Threaded კლასის მიერ, რათა უზრუნველყოს Threaded თვისებების შეცვლის შესაძლებლობა (ასევე მათი unset()).

ცვალებადობისა და Volatile კლასის გასაშუქებლად არის კიდევ ერთი განხილვის საგანი - მასივები. pthread-ებში მასივები ავტომატურად გადაიცემა Volatile ობიექტებზე Threaded კლასის თვისებებზე მინიჭებისას. ეს იმიტომ ხდება, რომ უბრალოდ არ არის უსაფრთხო მრავალი PHP კონტექსტის მასივის მანიპულირება.

მოდი კიდევ ერთხელ გადავხედოთ მაგალითს, რომ უკეთ გავიგოთ ზოგიერთი რამ:

$მასივი = ; $task = new class($array) აფართოებს Thread-ს ( კერძო $data; საჯარო ფუნქცია __construct (მასივი $array) ( $this->data = $array; ) საჯარო ფუნქცია run() ( $this->data = 4; $ this->data = 5 print_r($this->data) ); $task->start() && $task->join(); /* გამომავალი: არასტაბილური ობიექტი ( => 1 => 2 => 3 => 4 => 5) */

ჩვენ ვხედავთ, რომ არასტაბილურ ობიექტებს შეიძლება მივიჩნიოთ, თითქოს ისინი იყვნენ მასივები, რადგან ისინი მხარს უჭერენ მასივის ოპერაციებს, როგორიცაა (როგორც ზემოთ არის ნაჩვენები) subset() ოპერატორი. თუმცა, არასტაბილური კლასები არ უჭერენ მხარს მასივის ძირითად ფუნქციებს, როგორიცაა array_pop და array_shift. ამის ნაცვლად, Threaded კლასი გვაწვდის ისეთ ოპერაციებს, როგორიცაა ჩაშენებული მეთოდები.

როგორც დემონსტრირება:

$data = ახალი კლასი ვრცელდება Volatile ( საჯარო $a = 1; საჯარო $b = 2; საჯარო $c = 3; ); var_dump ($მონაცემები); var_dump($data->pop()); var_dump($data->shift()); var_dump ($მონაცემები); /* გამომავალი: ობიექტი(კლასი@ანონიმური)#1 (3) ( ["a"]=> int(1) ["b"]=> int(2) ["c"]=> int(3) ) int(3) int(1) ობიექტი(class@anonymous)#1 (1) ( ["b"]=> int(2) ) */

სხვა მხარდაჭერილი ოპერაციები მოიცავს Threaded::chunk და Threaded::merge .

სინქრონიზაცია

ამ სტატიის ბოლო ნაწილში ჩვენ განვიხილავთ სინქრონიზაციას pthread-ებში. სინქრონიზაცია არის მეთოდი, რომელიც საშუალებას გაძლევთ გააკონტროლოთ წვდომა გაზიარებულ რესურსებზე.

მაგალითად, მოდით განვახორციელოთ მარტივი მრიცხველი:

$counter = ახალი კლასი აფართოებს Thread-ს ( public $i = 0; public function run() ( for ($i = 0; $i i; ) ) ); $counter->start(); for ($i = 0; $i i; ) $counter->join(); var_dump ($counter->i); // დაბეჭდავს რიცხვს 10-დან 20-მდე

სინქრონიზაციის გამოყენების გარეშე გამომავალი არ არის დეტერმინისტული. მრავალი თემა იწერება ერთსა და იმავე ცვლადზე კონტროლირებადი წვდომის გარეშე, რაც ნიშნავს, რომ განახლებები დაიკარგება.

მოდით გავასწოროთ ეს ისე, რომ მივიღოთ 20-ის სწორი გამოსავალი დროის დამატებით:

$counter = ახალი კლასი ვრცელდება Thread ( public $i = 0; public function run() ( $this->synchronized(function () ( for ($i = 0; $i i; ) )); ) ); $counter->start(); $counter->synchronized(function ($counter) ( for ($i = 0; $i i; ) ), $counter); $counter->join(); var_dump ($counter->i); // int(20)

სინქრონიზებული კოდის ბლოკებს ასევე შეუძლიათ ერთმანეთთან კომუნიკაცია Threaded::wait და Threaded::notify (ან Threaded::notifyAll) მეთოდების გამოყენებით.

აქ არის ალტერნატიული ზრდა ორ სინქრონიზებულ ციკლში:

$counter = ახალი კლასი აგრძელებს Thread-ს ( საჯარო $cond = 1; საჯარო ფუნქცია run() ( $this->synchronized(function () ( for ($i = 0; $i notify(); if ($this->cond === 1) ( $this->cond = 2; $this->wait(); ) ) )); $counter->start(); $counter->synchronized(function ($counter) ( if ($counter->cond !== 2) ( $counter->wait(); // დაველოდოთ მეორე დაწყებას პირველი ) for ($i = 10; $i notify( if ($counter->cond === 2) ( $counter->cond = 1; $counter->wait(); ) ) ), $counter); $counter->join(); /* გამომავალი: int(0) int(10) int(1) int(11) int(2) int(12) int(3) int(13) int(4) int(14) int(5) int( 15) int(6) int(16) int(7) int(17) int(8) int(18) int(9) int(19) */

თქვენ შეიძლება შეამჩნიოთ დამატებითი პირობები, რომლებიც მოთავსებულია Threaded::wait . ეს პირობები კრიტიკულია, რადგან ისინი საშუალებას აძლევს სინქრონიზებული გამოძახების განახლებას, როდესაც ის მიიღებს შეტყობინებას და მითითებული პირობა არის ჭეშმარიტი. ეს მნიშვნელოვანია, რადგან შეტყობინებები შეიძლება მოვიდეს სხვა ადგილებიდან, გარდა Threaded::notify გამოძახების დროს. ამგვარად, თუ Threaded::wait მეთოდზე ზარები არ იყო ჩართული პირობებით, ჩვენ შევასრულებთ ცრუ გაღვიძების ზარები, რაც გამოიწვევს კოდის არაპროგნოზირებად ქცევას.

დასკვნა

ჩვენ გადავხედეთ pthreads პაკეტის ხუთ კლასს (Threaded, Thread, Worker, Volatile და Pool) და როგორ გამოიყენება თითოეული კლასი. ჩვენ ასევე გადავხედეთ უცვლელობის ახალ კონცეფციას pthreads-ში მოკლე მიმოხილვამხარდაჭერილი სინქრონიზაციის შესაძლებლობები. ამ საფუძვლების გათვალისწინებით, ახლა ჩვენ შეგვიძლია დავიწყოთ იმის გარკვევა, თუ როგორ შეიძლება გამოყენებული იქნას თრეადები რეალურ სამყაროში! ეს იქნება ჩვენი შემდეგი პოსტის თემა.

თუ გაინტერესებთ შემდეგი პოსტის თარგმანი, შემატყობინეთ: კომენტარი გააკეთეთ სოციალურ მედიაში. ქსელები, მხარი დაუჭირეთ და გაუზიარეთ პოსტი კოლეგებსა და მეგობრებს.

თემატური დისკუსია

თემატური დისკუსიაარის ელექტრონული დისკუსია (როგორიცაა ელექტრონული ფოსტით, ელ.ფოსტის სია, ბიულეტენის დაფა, ახალი ამბების ჯგუფი ან ინტერნეტ ფორუმი), რომელშიც პროგრამული უზრუნველყოფა ეხმარება მომხმარებელს შეტყობინებების ვიზუალური დაჯგუფებით. შეტყობინებები ჩვეულებრივ ჯგუფდება ვიზუალურად იერარქიაში თემის მიხედვით. ამ გზით დაჯგუფებული შეტყობინებების ერთობლიობას ეწოდება a თემის თემაან უბრალოდ "ძაფი". სადისკუსიო ფორუმს, ელ. ფოსტის კლიენტს ან ახალი ამბების კლიენტს, როგორც ამბობენ, აქვს "ნაკადიანი თემები", თუ ისინი აჯგუფებენ შეტყობინებებს იმავე თემაზე, რათა ადვილად წაიკითხონ ამ გზით. გარდა ამისა, თემატური დისკუსიები, როგორც წესი, საშუალებას აძლევს მომხმარებლებს უპასუხონ კონკრეტულ პოსტს თემის თემაში. შედეგად, შეიძლება იყოს დისკუსიების იერარქია თემის თემაში. სხვადასხვა ტიპის პროგრამულ უზრუნველყოფას შეუძლია ამ იერარქიის ჩვენება რაში. სახელწოდებით Threaded Mode. (ალტერნატივა არის ხაზოვანი რეჟიმი, რომელიც, როგორც წესი, აჩვენებს ყველა პოსტს თარიღის თანმიმდევრობით, მიუხედავად იმისა, თუ ვინ ვის კონკრეტულად უპასუხა.)

უპირატესობები

იერარქიულად დახატული შეხედულებების უპირატესობა ის არის, რომ ისინი მკითხველს საშუალებას აძლევს სწრაფად შეაფასოს საუბრის საერთო სტრუქტურა: კონკრეტულად ვინ ვის პასუხობს. როგორც ასეთი, ის ყველაზე გამოსადეგია გაფართოებულ საუბრებში ან დებატებში, როგორიცაა ახალი ამბების ჯგუფები: მართლაც, მართლაც რთული დებატების დროს, სწრაფად შეუძლებელი ხდება არგუმენტის თვალყურის დევნება რაიმე სახის იერარქიული ძაფების სისტემის გარეშე.

კიდევ ერთი სარგებელი არის საზოგადოების უფრო დახვეწილი შეფასება იერარქიულად დაძაბულ სისტემებში. რამდენადაც პასუხები უნდა გაკეთდეს კონკრეტულ პოსტებზე, ისინი ასევე კეთდება კონკრეტულ პირებზე. ამიტომ, ძაფიანი საუბრები მწერლის ფოკუსირებას ახდენს იმ ინდივიდის კონკრეტულ შეხედულებებზე და პიროვნებაზე, რომელზეც პასუხობენ. ეს ნაკლებად ხდება ფორუმებში, სადაც უახლესი კომენტარი მხოლოდ ჩასმულია საერთო აუზში.

ნაკლოვანებები

იერარქიული ძაფების მინუსი ბრტყელ ძაფებთან შედარებით არის გართულების გაზრდილი დონე და, შესაბამისად, ასეთი ხედვა მოითხოვს მომხმარებლების მხრიდან კომფორტისა და დახვეწილობის გაზრდას. ამიტომ, გასაკვირი არ არის, რომ მისი გამოყენება ყველაზე მძიმე იყო ზოგიერთ უძველეს და/ან ყველაზე დახვეწილ ონლაინ თემებში, როგორიცაა Usenet, CIX ან Slashdot. ვებ ჩეთისა და კომენტარების სისტემები, შედარებისთვის, უფრო ახალგაზრდაა და ღიაა ფართო აუდიტორიისთვის და, როგორც ასეთი, იერარქიული თემატიკა სულ ახლახან გახდა ჩვეულებრივი მსგავსი არენაზე.

ხის იერარქიის დაწესება ასევე მიდრეკილია თემის შიგნით დისკუსიის ფრაგმენტაციაში: უკვე აღარ ხდება შესაძლებელი შეტყობინების გამოქვეყნება, რომელიც პასუხობს ან აჯამებს რამდენიმე სხვადასხვა წინა პოსტს. სამაგიეროდ, ყველა წინა პოსტს ინდივიდუალურად უნდა უპასუხო. სადავოა, რომ ეს იწვევს უფრო კონფრონტაციულ დებატების სტილს ფორუმებში, რომლებიც იყენებენ იერარქიულ ძაფებს. თუმცა, მართალია, თუკი ეს შეიძლება იყოს, თუ სასურველ პოსტზე პასუხების მოცულობის გამო შეუძლებელია პირდაპირი ძაფებით პასუხის გაცემა, მომხმარებლები ახლა ხშირად იყენებენ ციტატებს იმ პირის მიერ, რომელსაც უპასუხებენ, რათა საუბრის მიმდინარეობა და მიმდინარეობა შეინარჩუნონ. შეუფერხებლად ეს რეკომენდირებულია შეტყობინებების დაფის თემების უმეტესობის მიერ იმ შემთხვევაში, თუ თემატიკა მიაღწია სხვაგვარად ყოვლისმომცველ ლიმიტს.

გახსენი თემა

ღია თემა ეხება ბლოგ პოსტს, სადაც მკითხველს შეუძლია კომენტარი გააკეთოს და განიხილოს ნებისმიერი თემა, რომელსაც აირჩევს. ისინი ჩვეულებრივ უფრო სასარგებლოა პოპულარულ ბლოგებზე დიდი რაოდენობით მოძრაობა; ისინი ხშირად გამოიყენება მაშინ, როდესაც ბლოგის ავტორს არ აქვს განსათავსებელი საგანი, ან როდესაც არის გამოქვეყნების სიწყნარე.

ღია თემები ასევე გამოიყენება ბლოგების მთავარ გვერდებზე პოსტების ერთფეროვნების დასაშლელად. კომენტარები შეიძლება დაგროვდეს შინაარსზე ორიენტირებულ პოსტებზე; ამიტომ, ავტორები იყენებენ ღია თემებს, რათა გვერდის ჩატვირთვის დრო არ შენელდეს.

მაგალითები

* იაჰო! ჯგუფები [ http://groups.yahoo.com/], MSN ჯგუფები [ http://groups.msn.com/] და სლეშდოტი [ http://www.slashdot.com/] ყველა გვთავაზობს ვებ-ზე დაფუძნებულ ფორუმებს, რომლებიც შეიცავს დისკუსიებს.

აგრეთვე

* მეცნიერული ცისწერა
* ბლოგის პირობების სია

ცნობები

*დარტმუთი. (2003). [ http://www.dartmouth.edu/~webteach/articles/discussion.html "დისკუსიის ჩატარება ონლაინ" ]
*ვოლსი, ტ. დევერე, [ http://www.readingonline.org/articles/art_index.asp?HREF=wolsey/index.html "ლიტერატურის დისკუსია კიბერსივრცეში: ახალგაზრდა მოზარდები იყენებენ დისკუსიის ჯგუფებს წიგნებზე სასაუბროდ] . "Reading Online", 7(4), 2004 წლის იანვარი/თებერვალი. წაკითხვის თარიღი: 2007 წლის 30 დეკემბერი

ფონდი ვიკიმედია.

  • 2010 წელი.
  • ლეონ პაუ

ბარჰ აზუმი

    გადახედე სხვა ლექსიკონებს:ინტერნეტ ფორუმი

    - phpBB ინტერნეტ ფორუმის პროგრამული პაკეტი, ერთ-ერთი ყველაზე პოპულარული ფორუმის პაკეტი… ვიკიპედიავირტუალური სასწავლო გარემოს ისტორია 1990 წ

    - ვირტუალური სასწავლო გარემოს ისტორიაში 1990-იანი წლები იყო ზრდის დრო, უპირველეს ყოვლისა ხელმისაწვდომი კომპიუტერისა და ინტერნეტის გამოჩენის გამო.1990-იანი წლები1990* Formal Systems Inc. პრინსტონში, ნიუ-ჯერსი, აშშ წარმოგიდგენთ DOS-ზე დაფუძნებულ შეფასებას… … ვიკიპედიას- ერთობლივი პირისპირ საგანმანათლებლო გარემო შემქმნელ(ებ)ი LEAD კონსორციუმი სტაბილური გამოშვება 5.0 / 2010 წლის ივნისი ოპერაციული სისტემა ჯვარედინი პლატფორმა … ვიკიპედია

    საუბრის თემატიკა- არის ფუნქცია, რომელსაც იყენებს ბევრი ელ.ფოსტის კლიენტი, ბიულეტენის დაფა, ახალი ამბების ჯგუფები ან ინტერნეტ ფორუმები, რომლებშიც პროგრამა ეხმარება მომხმარებელს შეტყობინებების ვიზუალურად დაჯგუფებით. შეტყობინებები ჩვეულებრივ ჯგუფდება ვიზუალურად იერარქიაში თემის მიხედვით. შეტყობინებების ნაკრები დაჯგუფებული... ... ვიკიპედია

    Slashdot- Slashdot.org-ის მთავარი გვერდის URL-ის სკრინშოტი slashdot.org სლოგანის ამბები ნერდებისთვის. მნიშვნელოვანი რამ... ვიკიპედია

    მედიავიკი- სახელთა სივრცის გადამისამართება აქ. ვიკიპედიაში MediaWiki-ის სახელთა სივრცის შესახებ დახმარებისთვის იხილეთ Help:MediaWiki namespace. ვიკიპედიის სახელთა სივრცის შესახებ ზოგადი ინფორმაციისთვის იხილეთ ვიკიპედია:სახელთა სივრცე. განხილვის გვერდი და MediaWiki განხილვის გვერდი გადამისამართება აქ. იყიდება... ... ვიკიპედიისთვის

    კომპიუტერის შუამავლობით კომუნიკაცია- სხვა მიზნებისათვის იხილეთ CMC (ორმაგება). კომპიუტერული შუამავლობითი კომუნიკაცია (CMC) განისაზღვრება, როგორც ნებისმიერი კომუნიკაციური ტრანზაქცია, რომელიც ხდება ორი ან მეტი ქსელური კომპიუტერის გამოყენებით. მიუხედავად იმისა, რომ ტერმინი ტრადიციულად მოიხსენიებს მათ… … ვიკიპედიას

    ვიკი პროგრამული უზრუნველყოფის შედარება- შემდეგი ცხრილები ადარებენ ზოგად და ტექნიკურ ინფორმაციას ვიკი პროგრამული პაკეტების შესახებ. სარჩევი 1 ზოგადი ინფორმაცია 2 სამიზნე აუდიტორია 3 ფუნქციები 1 4 ფუნქციები 2 … ვიკიპედია

    მეცნიერული ცისწერა- ეს არის ტერმინი, რომელიც გამოიგონა შემეცნებითმა მეცნიერმა სტევან ჰარნადმა, რომელიც აღწერს მრავალჯერადი ელ.ფოსტისა და თემებით დატვირთული ვებ არქივის კომბინაციას, როგორიცაა ახალი ამბების ჯგუფი, ელექტრონული საფოსტო სია, ჰიპერფოსტა, netnews ან ინტერნეტ ფორუმი, დაკავშირებული და დალაგებულია თარიღის მიხედვით,… … ვიკიპედია.

    ერთობლივი გადაწყვეტილების მიღების პროგრამული უზრუნველყოფა- ერთობლივი გადაწყვეტილების მიღების (CDM) პროგრამული უზრუნველყოფა არის პროგრამული პროგრამა ან მოდული, რომელიც კოორდინაციას უწევს ფუნქციებსა და ფუნქციებს, რომლებიც საჭიროა დროული კოლექტიური გადაწყვეტილებების მისაღებად, რაც საშუალებას აძლევს ყველა შესაბამის დაინტერესებულ მხარეს მონაწილეობა მიიღოს პროცესში. ... ... ვიკიპედია

მე ცოტა ხნის წინ ვცადე pthreads და სასიამოვნოდ გამიკვირდა - ეს არის გაფართოება, რომელიც ამატებს PHP-ში რამდენიმე რეალურ თემასთან მუშაობის უნარს. არანაირი ემულაცია, ჯადოქრობა, ყალბი - ყველაფერი რეალურია.



მე განვიხილავ ასეთ ამოცანას. არის ამოცანების აუზი, რომლებიც სწრაფად უნდა დასრულდეს. PHP-ს აქვს სხვა ინსტრუმენტები ამ პრობლემის გადასაჭრელად, ისინი აქ არ არის ნახსენები, სტატია ეხება pthread-ებს.



რა არის ძაფები

ესე იგი! ისე, თითქმის ყველაფერი. სინამდვილეში, არის რაღაც, რამაც შეიძლება გააღიზიანოს ცნობისმოყვარე მკითხველი. არცერთი მათგანი არ მუშაობს სტანდარტულ PHP-ზე, რომელიც შედგენილია ნაგულისხმევი პარამეტრებით. იმისთვის, რომ ისიამოვნოთ მრავალთრეადინგით, თქვენ უნდა გქონდეთ ჩართული ZTS (Zend Thread Safety) თქვენს PHP-ში.

PHP დაყენება

შემდეგი, PHP ZTS-ით. ნუ მიაქცევთ ყურადღებას შესრულების დროში ასეთ დიდ სხვაობას ZTS-ის გარეშე PHP-თან შედარებით (37.65 vs 265.05 წამი), მე არ მიცდია PHP პარამეტრების განზოგადება. ZTS-ის გარეშე, მე მაქვს ჩართული XDebug მაგალითად.


როგორც ხედავთ, 2 ძაფის გამოყენებისას, პროგრამის შესრულების სიჩქარე დაახლოებით 1,5-ჯერ მეტია, ვიდრე ხაზოვანი კოდის შემთხვევაში. 4 ძაფის გამოყენებისას - 3-ჯერ.


შეგიძლიათ გაითვალისწინოთ, რომ მიუხედავად იმისა, რომ პროცესორი არის 8 ბირთვიანი, პროგრამის შესრულების დრო თითქმის უცვლელი დარჩა, თუ გამოყენებული იყო 4-ზე მეტი თემა. როგორც ჩანს, ეს გამოწვეულია იმით, რომ ჩემს პროცესორს აქვს 4 ფიზიკური ბირთვი, მე გამოვხატე ფირფიტა დიაგრამის სახით.


რეზიუმე

PHP-ში შესაძლებელია საკმაოდ ელეგანტურად იმუშაოთ მრავალთრეადინგთან pthreads გაფართოების გამოყენებით. ეს იძლევა პროდუქტიულობის შესამჩნევ ზრდას.

ტეგები: ტეგების დამატება

ჩემი კარგი მეგობრის დედამ დაკარგა ჩემოდანი სანქტ-პეტერბურგიდან მოსკოვში ფრენისას და შემდგომ ფრენა თბილ სანაპიროებზე და ახლა უკვე კურორტზე იყო - საცურაო კოსტუმის, სანდლების და მხოლოდ T-ის გარეშე. - მაისური მისი ხელბარგიდან. ძველი დროის გულისთვის მე მივეცი მას რამდენიმე რჩევა იმის შესახებ, თუ რა უნდა გაეკეთებინა და სად უნდა გაიქცე, დღეს კი გადავწყვიტე აქ დავწერო ყველაფერი, რაც ვიცი მოცემულ თემაზე.

იმის ასახსნელად, თუ სად ვარ ასეთი ჭკვიანი, შეგახსენებთ, რომ ერთ დროს ვმუშაობდი რამდენიმე ავიაკომპანიის სახმელეთო სერვისებში, მათ შორის ბარგის ძებნასთან დაკავშირებულ გარკვეულ საკითხებთან დაკავშირებით. კარგი, პლუს ჩემი საკუთარი ფრენის გამოცდილება, რა თქმა უნდა. თუმცა იმის გამო რამდენიმე წლის წინ დავტოვე საავიაციო მომსახურების ინდუსტრია, შესაძლოა, ზოგიერთი ნიუანსი შეიცვალოს - თუ ასეა, მადლიერებით მივიღებ კომენტარებს თემაზე და გავასწორებ პოსტში მოცემულ ინფორმაციას.

დავიწყებ ამით რა უნდა გააკეთოთ თქვენი ბარგის დაკარგვის თავიდან ასაცილებლად:
1. ამოიღეთ ჩემოდნიდან წინა მოგზაურობის ყველა ტეგი და სტიკერი, თუნდაც მცირე ზომის შტრიხ-კოდით, რომლებიც ხშირად ცალ-ცალკე არის მიმაგრებული ჩემოდანზე - მათ შეუძლიათ აირიონ ბარგის ავტომატური სკანირება და დახარისხების სისტემა.
2. ჩამოკიდეთ ჩემოდანზე სახელწოდების ნიშანი (ჩანთა, ყუთი, შეფუთვა - ზოგადად, ყველაფერი, რასაც ბარგის სახით ამოწმებთ): შეგიძლიათ წინასწარ შეიძინოთ მრავალჯერადი გამოყენების ვარიანტი ან აიღოთ ქაღალდის ეტიკეტები სარეგისტრაციო დახლზე - ჩვეულებრივ, ყველაფერი ნახევრად ღირსეული ავიახაზები მათ აძლევენ შეზღუდვების გარეშე. და Emirates, მაგალითად, ზოგადად აქვს შესანიშნავი პლასტიკური ეტიკეტები გამძლე კაბელზე, რომელიც შეიძლება გაგრძელდეს ძალიან დიდი ხნის განმავლობაში:

ძველ პარანოიდებს შეუძლიათ ჩემსავით მოიქცნენ: ჩემოდანზე ყოველთვის მაქვს ხელახლა გამოყენებადი პლასტიკური ეტიკეტები Samsonite-ის ნაკრებიდან ჩემი მუდმივი სახლის მისამართით, ტელეფონის ნომრით და ელექტრონული ფოსტითდა როცა სადმე მიფრინავ შვებულებაში, დამატებით ვკიდებ ქაღალდის ჩანაწერს, რომელზედაც მივუთითებ ახალ ადგილას ჩემი ყოფნის თარიღებს და ყველა შესაძლო კონტაქტს (სასტუმროს დასახელებას და მისამართს, მის ადგილობრივ ტელეფონის ნომერს, ასეთის არსებობის შემთხვევაში, და ჩემი სახელი და გვარი, რა თქმა უნდა).
3. სარეგისტრაციო დახლზე დარწმუნდით, რომ თქვენს ბარგს დატანილი აქვს ბარგის ტეგი, რომელსაც ბეჭდავს გამშვები აგენტი - ქალაქის კოდით, სადაც მიფრინავთ და ფრენის ნომერი.
4. თუ თქვენ გაქვთ რამდენიმე დამაკავშირებელი ფრენა, უთხარით რეგისტრაციის აგენტს ამის შესახებ და მიუთითეთ რომელ პუნქტში გსურთ თქვენი ბარგის შემოწმება. ზოგიერთ შემთხვევაში, ბარგის აყვანა მოგიწევთ ამა თუ იმ აეროპორტში მარშრუტის გასწვრივ, თქვენი სურვილის მიუხედავად: ეს ეხება, მაგალითად, აეროპორტებს შორის ტრანსფერებს (ორლი და შარლ დე გოლი პარიზში, დომოდედოვო - შერემეტევო - "ვნუკოვო". მოსკოვში), ცალკეული ტერმინალები (ტერმინალები 1 და 2 ფრანკფურტში) ან აშშ-ში ან მექსიკაში ჩამოსვლის პირველ პუნქტში - ეს არის საბაჟო მოთხოვნა ამ ქვეყნებში: დავუშვათ, რომ თქვენ მიფრინავთ მოსკოვი-ვაშინგტონი-ფენიქსში, ბარგის ნიშანი. სამივე სეგმენტისთვის გაიცემა Phoenix-ში, მაგრამ ვაშინგტონში, ბარგის ფიზიკურად აღება, განბაჟება და ხელახლა შემოწმება, ასევე, თუ თქვენ ამოწმებთ ბავშვის ეტლში, რომლის წაღებასაც უფლება გქონდათ ჩაჯდომამდე თვითმფრინავი ან ცხოველი, სავარაუდოდ, დაგჭირდებათ მისი აყვანა სატრანზიტო პუნქტში. ზოგადად, გადარიცხვით რთული მარშრუტის შემთხვევაში, უმჯობესია ბარგის გადაადგილების დეტალები წინასწარ განვმარტოთ ავიაკომპანიის სატელეფონო ცენტრში ან უკიდურეს შემთხვევაში, რეგისტრირების დროს.
5. გახადეთ თქვენი ბარგი თვალსაჩინო: ბარგის დაგვიანება ყოველთვის არ არის ბარგის გამტარების ბრალი ან დახარისხების სისტემაში წარუმატებლობა. ხანდახან სხვა უაზრო მგზავრი, ხანგრძლივი ფრენის შემდეგ დაღლილი, აიღებს ბარგის ქამრიდან იმავე შავ სამსონიტის ან არააღწერილ სპორტულ ჩანთას, როგორც თქვენ. ამიტომ, მონიშნეთ თქვენი ბარგი: ჩამოკიდეთ სახელურზე კაშკაშა ლენტები ან პატარა რბილი სათამაშო, დააწებეთ მასზე დიდი სტიკერი ან უბრალოდ უპირატესობა მიანიჭეთ უჩვეულო ფერს ჩემოდნის არჩევისას.

რა არ უნდა შემოწმდეს ბარგში?
გახსოვდეთ, ყველა ავიაკომპანია და აეროპორტი კარგავს ბარგს. რა თქმა უნდა, სტატისტიკა ყველასთვის განსხვავებულია, მაგრამ ყველაზე სანდო ავიაკომპანიებსაც კი შეუძლიათ ბარგის დაკარგვა ან გადადება, და თუნდაც ყველაზე პატარა აეროპორტში, სადაც ერთი ბარგის დამმუშავებელი გადაიტანს ეტლს ჩემოდნებით პირდაპირ გამშვები პუნქტიდან თვითმფრინავში. ამიტომ, გირჩევთ, ყოველთვის აიღოთ ხელბარგი:
- მნიშვნელოვანი დოკუმენტები, მათ შორის ის, რაც არ არის საჭირო ფრენის დროს (მაგალითად, ჩემი ბოლო მოგზაურობისას სანკტ-პეტერბურგში მჭირდებოდა ლიცენზიის შეცვლა და ხელბარგში ავიღე ქორწინების მოწმობა და ყველა სახის ბარათი. ავტოსკოლა)
- გასაღებები (თქვენი მისამართის ტეგთან ერთად, ეს შეიძლება საშიში იყოს)
- ფული, სამკაულები (კომენტარის გარეშე)
- ძვირადღირებული მყიფე აღჭურვილობა
- მედიკამენტები, რომლებსაც რეგულარულად იღებთ, ფრენისთვის საჭირო ოდენობით და მცირე რეზერვით, თუკი უცხო ქვეყანაში ან ქალაქში მოგიწევთ ანალოგის ძებნა. რეცეპტით გაცემული მედიკამენტები, რომელთა შეძენაც შეუძლებელია თქვენი ბარგის დაკარგვის შემთხვევაში, თან წაიღეთ მთელი მოგზაურობისთვის საჭირო ოდენობით.
- რაღაც, რაც შეიძლება საჭირო გახდეს სასწრაფოდ ჩამოსვლისას (მაგალითად, დამტენიტელეფონისთვის
- რაღაც, რასაც პირადად შენთვის აქვს სენტიმენტალური ღირებულება: ხანდახან ბარგი სამუდამოდ იკარგება და თუ პირადი დღიურის დაკარგვა გულს გტკენს, ჯობია სახლში დატოვო ან თვითმფრინავში წაიღო.

სასწავლო ამბავი: სანქტ-პეტერბურგში, ლუფთჰანზაში ჩემი მუშაობის დროს, ჩვენს ოფისში მოვიდა დაქორწინებული წყვილი ამერიკიდან, ხელებს ახვევდა - მათი ბარგი, რომელიც შეიცავდა შვილად აყვანის სასამართლო პროცესისთვის ძალიან მნიშვნელოვან დოკუმენტებს, არ იყო მოსული. სასამართლო პროცესი მეორე დღეს იყო. რა თქმა უნდა, ავიაკომპანია არის დამნაშავე ბარგის დაკარგვაში, მაგრამ ვის სარგებლობს ეს? ასეთი სიტუაციის თავიდან ასაცილებლად საკმარისი იყო ხელბარგში უბრალოდ მნიშვნელოვანი ქაღალდების ჩადება.

ასე რომ, თქვენ ჩამოხვედით და ბარგის ქამარზე არ გიპოვეთ ბარგი. რა უნდა გააკეთოს?
1. თუ ბარგში ჩვეულებრივი ჩემოდნებისგან განსხვავებული რაღაც ჩააბარეთ: თხილამურები, ჩელო, კედლის ზომის პლაზმური პანელი, ბავშვის ეტლი, ცოცხალი მარმარილოს დანი, შეამოწმეთ არის თუ არა ცალკე პუნქტი გაცემის ე.წ. დიდი ზომის ბარგი ან მოცულობითი ბარგი - ბარგი, რომელიც ზემოთ აღვწერე, ხშირად იტვირთება ცალკეულ განყოფილებაში და იტვირთება ცალკე, ხელით. თუ თქვენი ბარგი იქაც არ არის ნაპოვნი
2. გადადით ბარგის მიკვლევაში ან დაკარგული და ნაპოვნი მრიცხველზე. აქ თქვენ უნდა შეავსოთ სპეციალური ფორმა დეტალური ინფორმაციათქვენი ბარგის შესახებ: მარშრუტი, გარეგნობა, შინაარსის მოკლე ჩამონათვალი, თქვენი კონტაქტები თქვენს მუდმივ საცხოვრებელ ადგილას და დროებითი ყოფნის ადგილი. ასევე, ბარგის მიკვლევის სერვისში თქვენ უფრო სავარაუდოა, რომ იხილოთ ბარგის ასეთი სქემა:

სწორედ ამ კლასიფიკაციის მიხედვით იქნება დაშიფრული თქვენი დაკარგული ბარგი და, როგორც გესმით, ეს ორი ჩემოდანი ერთნაირად იქნება კოდირებული:

ასე რომ, მოგერიდებათ დაამატოთ დამატებითი დეტალები აღწერილობაში და არ გამოტოვოთ შინაარსის პუნქტი. როგორც წესი, როდესაც პირველად ავსებთ ბარგის დაგვიანების ანგარიშს, მოგეთხოვებათ მიუთითოთ შიგთავსის რამდენიმე ელემენტი, რომლითაც შეიძლება თქვენი ჩანთის იდენტიფიცირება, თუ გარედან არ არის საიდენტიფიკაციო ნიშნები და ჩანთა უნდა გაიხსნას (თუ ჩანთა გახსნილია, ამის შესახებ დადებთ შეტყობინებას). ცუდი მაგალითი: მაისური / წიგნი / სველი ტილოები, კარგი მაგალითი: ნათელი წითელი ბიკინი / მალევიჩის რეპროდუქციების კატალოგი / დასაკეცი რკინა. აპლიკაციის შევსების შემდეგ, ბარგის მიკვლევის სამსახურის თანამშრომელი მოგცემთ ნომერს ფორმატში XXXYY11111, სადაც XXX არის ჩამოსვლის აეროპორტის კოდი, YY არის ჩამოსვლის ავიაკომპანიის კოდი + განაცხადის სერიული ნომრის 5 ციფრი: მაგალითად, JFKLH12345, თუ თქვენ გაფრინდით Lufthansa-სთან ერთად ნიუ-იორკის კენედის აეროპორტში. დაიმახსოვრეთ ან ჩაწერეთ ეს რიცხვი - ეს იქნება უმარტივესი გზა თქვენი აპლიკაციის მოსაძებნად მომავალ აპლიკაციებში.
იმავე ნომრის გამოყენებით შეგიძლიათ თავად შეამოწმოთ ძიების სტატუსი (რატომღაც ბმული ქრება: თუ ის არ გამოგდის, google World Tracer Online და სიტყვასიტყვით მეორე ბმული - სათაურით Bargage Tracing ვებსაიტზე worldtracer.aero - არის ის, რაც გჭირდებათ), რადგან დაკარგული და ნაპოვნის გავლა ხშირად ძალიან რთულია
3. სცადეთ დაუკავშირდეთ თქვენი ავიაკომპანიის ოფისს ჩამოსვლის აეროპორტში: ხანდახან (ხაზს ვუსვამ - ხანდახან!) თუ სახლში არ გაფრინდით, მაგრამ დროებითი ყოფნის ადგილზე (დასვენება, მივლინება), ავიაკომპანიას შეუძლია მოგაწოდოთ კომპლექტი. ტუალეტის საშუალებები (Lufthansa-ს აქვს დიდი ზომის მაისური, კბილის ჯაგრისი და პასტა, სავარცხელი, შამპუნისა და შხაპის გელის პატარა შეფუთვა, სარეცხი ფხვნილის პაკეტი და ა.შ.) ან ადგილზე გადაიხადეთ მცირე ნაღდი ფული. (ნაღდი ანგარიშსწორება ადგილზე).

რა მოხდება შემდეგ?
თქვენი ფაილი (ე.წ. AHL) გადავა ბარგის ცენტრალიზებულ სისტემაში (World Tracer). ბარგის ყველა გამოუყენებელი ელემენტი ერთსა და იმავე საძიებო სისტემაშია, არ აქვს მნიშვნელობა, იპოვეს ისინი ბარგის ეზოს კუთხეებში თუ დარჩნენ ბარგის ქამარზე, არის XXXYY11111 ფორმატის ფაილი ასევე შექმნილი, მხოლოდ განსხვავებული ქვეტიპის - ე.წ. წინასწარი ანგარიში ან OHD. თუ AHL და OHD ფაილების მონაცემები ემთხვევა (გვარი, ჩემოდანის აღწერა, მარშრუტი და ა.შ.), ორივე სადგური (სადაც დაფიქსირდა ბარგის დაკარგვის შესახებ და სადაც აღმოჩენილია გამოუყენებელი ბარგი) მიიღებს შეტყობინებას და შემდეგ ტექნოლოგიის საქმეა: ხელახალი შემოწმება და წარმატების შემთხვევაში ბარგის გადაგზავნა სასურველ ქალაქში. რა თქმა უნდა, დიდი რაოდენობით თვითნაკეთი- შეტყობინებების გაგზავნა, მსგავსი, მაგრამ არა იგივე ჩემოდნების უარყოფა, პლიუს პასუხები მრავალზე სატელეფონო ზარები- ზოგადად, ბარგის ძებნის სამსახურის თანამშრომლები არასოდეს ბეზრდებათ.
სავარაუდო სტატისტიკა: დაკარგული ბარგის 90%-ზე მეტი ნაპოვნია ძიების პირველ 3 დღეში, 3% სამუდამოდ იკარგება.
რა შეგიძლიათ გააკეთოთ?
1. თუ ჩამოსვლისას სასწრაფოდ საჭირო ნივთის ყიდვა მოგიწევთ (კბილის ჯაგრისიდან დაწყებული საქმიანი კოსტუმით), აუცილებლად შეინახეთ თქვენი ქვითრები მოგვიანებით ანაზღაურებისთვის. თუმცა, თქვენ უნდა მოერიდოთ არასაჭირო ძვირადღირებულ შესყიდვებს, მოგვიანებით აგიხსნით რატომ.
2. ახალი ნაბიჯების შემდეგ შეადგინეთ შინაარსის ყველაზე დეტალური სია, სასურველია ფერით, ბრენდით და სავარაუდო ღირებულებათითოეული ნივთი, იდეალურად ინგლისურად (თორემ ავიაკომპანიის თანამშრომელს მოუწევს ამ სიის თარგმნა სისტემაში შესასვლელად), დაუკავშირდით ავიაკომპანიას და გაუგზავნეთ ეს სია, ის დაემატება ბარგის ძიების აპლიკაციას. პირველი 5 დღის განმავლობაში, ბარგის ძებნას ახორციელებს ჩამოსვლის აეროპორტი, შემდეგ ჩხრეკა ხდება გადამზიდავი ავიაკომპანიის პასუხისმგებლობაში (ავიაკომპანია, რომელიც მითითებულია განაცხადის ნომერში - გახსოვთ JFKLH12345?), ხოლო 21 დღის შემდეგ თქვენ. შეუძლია მიმართოს საბოლოო კომპენსაციას.
3. თუ დაკარგული ბარგის შესახებ განცხადების შეტანიდან 21 დღის შემდეგ ის ვერ იქნა ნაპოვნი, დაუკავშირდით გადამზიდველ ავიაკომპანიას კომპენსაციის მოთხოვნით. თუ არ ვცდები, ხანდაზმულობის ვადა 2 წელია, ე.ი. თქვენ შეგიძლიათ მიმართოთ კომპენსაციას ზარალის შესახებ საჩივრის შეტანის დღიდან ორი წლის განმავლობაში.

კომპენსაციის გადახდა.
კომპენსაციის გადასახდელად, თქვენ უნდა დაუკავშირდეთ თქვენი ავიაკომპანიის წარმომადგენლობას განაცხადით გადახდის შესახებ, ფრენის დამადასტურებელი დოკუმენტები და ბარგის დაკარგვის ფაქტი (ჩასხდომის საშვი, ბარგის ეტიკეტები, საჩივრის ნომერი ბარგის დაკარგვისთვის, გადახდის დეტალები). თუ არ ვცდები, რუსეთის ფედერაციაში კომპენსაციის შესახებ გადაწყვეტილება კანონიერად უნდა განიხილებოდეს 30 დღის ვადაში. ასევე შეიძლება მოგეთხოვოთ შიგთავსის ღირებულების შეფასება და, თუ ეს შესაძლებელია, მოგაწოდოთ ქვითრები ჩემოდნისა და მასში არსებული ნივთების შესაძენად (მე მესმის, რომ ეს უმეტეს შემთხვევაში არარეალურია, მაგრამ ეს პროცედურის ნაწილია).
ადრე გადახდები ხდებოდა შემოწმებული ბარგის წონის მიხედვით - კილოგრამზე დაახლოებით 20 დოლარი. მოგვიანებით, გადახდის სისტემა შეიცვალა და ავიაკომპანიების პასუხისმგებლობა შემოიფარგლა 1000 ჩვეულებრივი ერთეულით (ჩვეულებრივი ერთეულის ღირებულება გამოითვლება ავიაკომპანიის ფარგლებში), რაც ჩემი მუშაობის დროს შეესაბამებოდა დაახლოებით 1300 ევროს. იმათ. მაშინაც კი, თუ თქვენ მოგიტანთ ლუი ვიტონის ჩემოდანის შესყიდვის ქვითარი, რომელიც დამზადებულია ათასი ბოლივიური გეკოს ტყავისგან და ბრილიანტებით გატენილი, 1300 ევროზე მეტს ვერ მიიღებთ.