ائش زامانلی بیلگی ایشلم

ویکی‌پدیادان، آچیق بیلیک‌لیک‌دن

ائش زامانلی بیلگی ایشله‌می (اینگیلیسجه: Concurrent computing) بیر نئچه حئسابلامانین عینی واختدا آردیجیل و یا پارالل اولاراق دئییل، اوست-اوسته دوشن زامان آرالیقلاریندا یئرینه یئتیریلدیغی و بیر حئسابلاما‌نین بیر سونراکی باشلامادان اؤنجه تاماملاندیغی بیر بیلگی ایشلم فورمودور.

بو، هر بیر ایشلم (پروسئس) اوچون آیریجا ایجرا نقطه‌سی و یا "کنترل ایپی (thread of control)" اولان سیستئمین (پروقرام، بیلگی‌سایار و یا آغ/شبکه‌) اؤزللیغیدیر. بیر ائش زامانلی سیستئم، بیر حئسابلاما‌نین بوتون باشقا حئسابلاما‌لارین تاماملانما‌سینی گؤزلمدن داوام ائده بیلدیغی سیستئم‌دیر.

ائش زامانلی بیلگی ایشلمی ماژولار یازیلیملامانین بیر فورمودور. او‌نون پارادایمیندا قلوبال حئسابلاما عینی واختدا یئرینه یئتیریله بیلن آلت حئسابلاما‌لارا داخیل ائدیلیر. ادسخر دیکسترا، پر برینچ هنسن و تونی هور ائش زامانلی حئسابلاما ساحه‌‌سینده قاباقجیل‌ بیلیم اینسانلاریندان ساییلیرلار.

پارالئل بیلگی ایشلم ایله قارشیلاشدیرما[دَییشدیر]

ائش زامانلی بیلگی ایشلم آنلاییشی تئز-تئز، ایلگیلی، آنجاق فرقلی پارالئل حئسابلاما آنلاییشی ایله قاریشدیریلیر، باخمایاراق کی، هر ایکیسی "عینی واخت دیلیمینده یئرینه یئتیریلن چوخلو ایشلم‌لر" کیمی تانیملانا بیلر. پارالئل حئسابلامادا ایجرا عینی فیزیکی آندا باش وئریر: اؤرنک اولاراق، حئسابلاما‌لاری سورعت‌لندیرمک اوچون چوخ-ایشلمچی (‌‌multi-processor) ماشینین آیری-آیری ایشلمچیلرینده؛ پارالئل حئسابلاما بیر-ایشلمچی (one-core) ماشیندا مومکون دئییل، چونکی یالنیز بیر ایشلمچی وار و هر فیزیکی آندا (هر هانسی بیر ساعات دؤنگو عرضینده) تکجه بیر حئسابلاما باش وئره بیلر. بو‌نون ترسینه اولاراق، ائش زامانلی حئسابلاما‌لار اوست-اوسته دوشن ایشلم یاشام مدت‌لرین‌دن عبارت‌دیر، آنجاق ایجرا‌نین عینی واختدا باش وئرمه‌سی لازیم دئییل. بورادا آماج خاریجی دونیادا عینی واختدا باش وئرن ایشلم‌لری مودئللشدیرمک‌دیر، اؤرنک اولاراق، بیردن چوخ موشتری‌نین سئروئره عینی آندا گیریشی.

اوستونلوک‌لر[دَییشدیر]

  • آرتان پروقرام وئریمی - ائش زامانلی بیر پروقرامین پارالئل ایجراسی، قوستافسون یاساسینا گؤره، معین بیر مدتده یئرینه یئتیریلن تاپشیریق‌لارین (تسک‌لرین) ساییسینین ایشلمچی‌لرین ساییسینا متناسب اولاراق آرتماسینا ایمکان وئریر.
  • گیریش/چیخیش اوچون یوکسک یانیتلانابیلیرلیق؛ گیریش/چیخیش عملیاتلارینا باغلی پروقرام‌لار تئز-تئز گیریش و یا چیخیش ایشلم‌لرینین تاماملانما‌سینی گؤزله‌ییر. ائش زامانلی یازیلیملاما گؤزله‌مه‌یه صرف اولونان واختین باشقا بیر ایش اوچون قوللانیلماسینی ساغلاییر.
  • داها اویغون (مناسب) پروقرام استراکچری: بعضی پروبلئم‌لر و پروبلئم ساحه‌‌لری ائش زامانلی تاپشیریق‌لار و یا ایشلم‌لر کیمی تمثیل اولونماق اوچون چوخ اویغوندور.

اؤرنک‌لر[دَییشدیر]

آشاغیداکی گولنگ ایله یازیلان کود دا گوروتین و کانال اؤزللیکلرینی قوللاناراق doConcurrent ایشلمی دفعه‌لرجه ائش زامانلی اولاراق ایجرا اولونور.

package main

import (
	"fmt"
	"math/rand"
	"time"
)

func doConcurrent(id int, channel chan int) {
	jobDuration := time.Duration(rand.Intn(5)+1) * time.Second
	time.Sleep(jobDuration)
	fmt.Printf("Job #%v - duration: %v\n", id, jobDuration)
	channel <- id
}

func main() {
	channel := make(chan int)
	timeout := time.After(3 * time.Second)
	for id := 0; id < 5; id++ {
		go doConcurrent(id, channel)
	}
	for i := 0; i < 5; i++ {
		select {
		case jobId := <-channel:
			fmt.Printf("job #%v has finished\n", jobId)
		case <-timeout:
			fmt.Println("Time out...")
			return
		}
	}
}

// ایجرادان ایجرایا فرقلی سونوجلار الده ائدیله بیلر
// Job #4 - duration: 2s
// job #4 has finished
// Job #0 - duration: 2s
// job #0 has finished
// Job #1 - duration: 3s
// Job #2 - duration: 3s
// Time out...

قایناقلار[دَییشدیر]

اینگیلیسجه ویکی‌پدیاسی‌نین ایشلدنلری طرفیندن یارانمیش«Concurrent computing»، مقاله‌سیندن گؤتورولوبدور. (۳۱ مارس ۲۰۲۴ تاریخینده یوْخلانیلیبدیر).