Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #95 from hto/master
sync-async-thread
- Loading branch information
Showing
3 changed files
with
100 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,79 @@ | ||
--- | ||
title: async | ||
tags: | ||
- programlama | ||
- golang | ||
- thread | ||
--- | ||
|
||
Türkçe olarak anlatmak istersek **Eşzamansız** programlama olarak tanımlanabilir. Basitçe tek bir [thread](/thread) üzerinde bir çok fonksiyonu veya isteği karşılamak mümkündür ama standart yapıda işlemler sıraya girerek görevlerini yerine getirir. Buna [SYNC](/sync) (senkron) denir. Async'de ise bu işler birbirlerinden ayrı sıraya girmeden aynı anda başlatılabilir. Her işlem bir birine bağlı olmadan bağımsız şekilde çalışır. | ||
|
||
### Go Dilinde örnek | ||
Goroutines kullanarak *Go Programlama Dili* nde örnek yapabiliriz. Resmi dökümanlar ve örnekler için [buraya](https://tour.golang.org/concurrency/1) bakabilirsiniz. | ||
|
||
### ASYNC | ||
|
||
```go | ||
package main | ||
import "fmt" | ||
func main() { | ||
fmt.Println("1") | ||
fmt.Println("2") | ||
fmt.Println("3") | ||
fmt.Println("4") | ||
fmt.Println("5") | ||
fmt.Println("6") | ||
fmt.Println("7") | ||
fmt.Println("8") | ||
fmt.Println("9") | ||
fmt.Println("10") | ||
} | ||
``` | ||
#### Çıktı | ||
``` | ||
1 | ||
2 | ||
3 | ||
4 | ||
5 | ||
6 | ||
7 | ||
8 | ||
9 | ||
10 | ||
``` | ||
|
||
### SYNC (Go-Routines ile) | ||
```go | ||
package main | ||
import "fmt" | ||
|
||
func main() { | ||
go func() { | ||
fmt.Println("1") | ||
fmt.Println("2") | ||
fmt.Println("3") | ||
}() | ||
|
||
fmt.Println("4") | ||
fmt.Println("5") | ||
fmt.Println("6") | ||
fmt.Println("7") | ||
fmt.Println("8") | ||
fmt.Println("9") | ||
fmt.Println("10") | ||
} | ||
``` | ||
#### Çıktı | ||
``` | ||
4 | ||
5 | ||
6 | ||
1 | ||
7 | ||
8 | ||
2 | ||
9 | ||
3 | ||
10 | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
--- | ||
title: sync | ||
tags: | ||
- programlama | ||
- thread | ||
--- | ||
|
||
Türkçe olarak anlatmak istersek **Eşzamanlı** programlama olarak tanımlanabilir. Sync, İngilizcedeki “synchronization” kelimesinin kısaltmasıdır. İşlemlerin aynı anda ve birbirinden haberdar olarak yürütülmesi olayıdır. Yani işlemler sırayla yapılır, birbirini izler. İşlemler birbirinden haberdar olarak yürür. | ||
|
||
|
||
Sync tersi olarakta [ASYNC](/async) ye bakabilirsiniz. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
--- | ||
title: thread | ||
tags: | ||
- programlama | ||
- multi thread | ||
--- | ||
|
||
Thread basitçe iş parçacıları anlamına gelir. Örneğin programlamada yürütülen bir işlem tek bir thread yani iş parçasında yürütülür ve işlemler biri biter, biri başlar şeklinde yürür. İşlemlerin yüklendiği iş parçasına thread denir. Bir işlem üzerinde birden fazla işlem yapabilmeniz için multi-thread yapıya geçebilir, başlatılan işlemler sıraya girmeden yaratılan çoklu threadler üzerinde atanan her işlem ayrı bir thread'e yüklenerek görevlerini bitirebilirler. | ||
|
||
Ayrıca : [SYNC](/sync), [ASYNC](/async) bakmanızı öneririm. |