-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.html
267 lines (218 loc) · 15.3 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
<html lang="en"><head>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script type="text/javascript" async="" src="https://www.google-analytics.com/analytics.js"></script><script async="" src="https://www.googletagmanager.com/gtag/js?id=UA-52115242-14"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-52115242-14');
</script>
<meta charset="utf-8">
<title>Aryia Behroziuan - Go development</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="A project management Bootstrap theme by Medium Rare">
<link href="../assets/img/favicon.ico" rel="icon" type="image/x-icon">
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<link href="https://fonts.googleapis.com/css?family=Gothic+A1" rel="stylesheet">
<link href="https://pipeline.mediumra.re/assets/css/theme.css" rel="stylesheet" type="text/css" media="all">
</head>
<body>
<div class="layout layout-nav-side">
<div class="navbar navbar-expand-lg bg-dark navbar-dark sticky-top">
<div class="d-flex align-items-center">
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbar-collapse" aria-controls="navbar-collapse" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="d-block d-lg-none ml-2">
<div class="dropdown">
<a href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<img alt="Image" src="https://pipeline.mediumra.re/assets/img/avatar-male-4.jpg" class="avatar">
</a>
<div class="dropdown-menu dropdown-menu-right">
<a href="nav-side-user.html" class="dropdown-item">Profile</a>
<a href="utility-account-settings.html" class="dropdown-item">Account Settings</a>
<a href="#" class="dropdown-item">Log Out</a>
</div>
</div>
</div>
</div>
<div class="collapse navbar-collapse flex-column" id="navbar-collapse">
<ul class="navbar-nav d-lg-block">
<li class="nav-item">
<a class="nav-link" href="../index.html">Overview</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#" data-toggle="collapse" aria-expanded="false" data-target="#submenu-2" aria-controls="submenu-2">Pages</a>
<div id="submenu-2" class="collapse">
<ul class="nav nav-small flex-column">
<li class="nav-item">
<a class="nav-link" href="../pages-app.html">App Pages</a>
</li>
<li class="nav-item">
<a class="nav-link" href="../pages-utility.html">Utility Pages</a>
</li>
<li class="nav-item">
<a class="nav-link" href="../pages-layouts.html">Layouts</a>
</li>
</ul>
</div>
</li>
<li class="nav-item">
<a class="nav-link" href="#" data-toggle="collapse" aria-expanded="false" data-target="#submenu-3" aria-controls="submenu-3">Components</a>
<div id="submenu-3" class="collapse">
<ul class="nav nav-small flex-column">
<li class="nav-item">
<a class="nav-link" href="../components-bootstrap.html">Bootstrap</a>
</li>
<li class="nav-item">
<a class="nav-link" href="../components-pipeline.html">Pipeline</a>
</li>
</ul>
</div>
</li>
<li class="nav-item">
<a class="nav-link" href="../documentation/index.html">Documentation</a>
</li>
<li class="nav-item">
<a class="nav-link" href="../documentation/changelog.html">Changelog</a>
</li>
</ul>
<hr>
<div class="d-none d-lg-block w-100">
<span class="text-small text-muted">Quick Links</span>
<ul class="nav nav-small flex-column mt-2">
<li class="nav-item">
<a href="../nav-side-team.html" class="nav-link">Team Overview</a>
</li>
<li class="nav-item">
<a href="../nav-side-project.html" class="nav-link">Project</a>
</li>
<li class="nav-item">
<a href="../nav-side-task.html" class="nav-link">Single Task</a>
</li>
<li class="nav-item">
<a href="../nav-side-kanban-board.html" class="nav-link">Kanban Board</a>
</li>
</ul>
<hr>
</div>
<div>
<form>
<div class="input-group input-group-dark input-group-round">
<div class="input-group-prepend">
<span class="input-group-text">
<i class="material-icons">search</i>
</span>
</div>
<input type="search" class="form-control form-control-dark" placeholder="Search" aria-label="Search app">
</div>
</form>
<div class="dropdown mt-2">
<button class="btn btn-primary btn-block dropdown-toggle" type="button" id="newContentButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Add New
</button>
<div class="dropdown-menu">
<a class="dropdown-item" href="#">Team</a>
<a class="dropdown-item" href="#">Project</a>
<a class="dropdown-item" href="#">Task</a>
</div>
</div>
</div>
</div>
<div class="d-none d-lg-block">
<div class="dropup">
<a href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<img alt="Image" src="https://pipeline.mediumra.re/assets/img/avatar-male-4.jpg" class="avatar">
</a>
<div class="dropdown-menu">
<a href="nav-side-user.html" class="dropdown-item">Profile</a>
<a href="utility-account-settings.html" class="dropdown-item">Account Settings</a>
<a href="#" class="dropdown-item">Log Out</a>
</div>
</div>
</div>
</div>
<div class="main-container">
<div class="breadcrumb-bar navbar bg-white sticky-top">
<nav aria-label="breadcrumb">
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="../index.html">Overview</a>
</li>
<li class="breadcrumb-item"><a href="index.html#">Documentation</a>
</li>
<li class="breadcrumb-item active" aria-current="page">Changelog</li>
</ol>
</nav>
</div>
<div class="container">
<div class="row justify-content-around mt-3 mt-lg-5">
<div class="col-md-9 col-lg-8">
<div>
<h1 class="display-4">Go language programming</h1>
<span class="lead">
What's new in the latest version of Aryia behroziuan.
</span>
</div>
<hr class="my-lg-4 my-3">
<p>
Concurrency: goroutines and channels
The Go language has built-in facilities, as well as library support, for writing concurrent programs. Concurrency refers not only to CPU parallelism, but also to asynchrony: letting slow operations like a database or network read run while the program does other work, as is common in event-based servers.[78]
The primary concurrency construct is the goroutine, a type of light-weight process. A function call prefixed with the go keyword starts a function in a new goroutine. The language specification does not specify how goroutines should be implemented, but current implementations multiplex a Go process's goroutines onto a smaller set of operating-system threads, similar to the scheduling performed in Erlang.[79]:10
While a standard library package featuring most of the classical concurrency control structures (mutex locks, etc.) is available,[79]:151–152 idiomatic concurrent programs instead prefer channels, which provide send messages between goroutines.[80] Optional buffers store messages in FIFO order[62]:43 and allow sending goroutines to proceed before their messages are received.[citation needed]
Channels are typed, so that a channel of type chan T can only be used to transfer messages of type T. Special syntax is used to operate on them; <-ch is an expression that causes the executing goroutine to block until a value comes in over the channel ch, while ch <- x sends the value x (possibly blocking until another goroutine receives the value). The built-in switch-like select statement can be used to implement non-blocking communication on multiple channels; see below for an example. Go has a memory model describing how goroutines must use channels or other operations to safely share data.[81]
The existence of channels sets Go apart from actor model-style concurrent languages like Erlang, where messages are addressed directly to actors (corresponding to goroutines). The actor style can be simulated in Go by maintaining a one-to-one correspondence between goroutines and channels, but the language allows multiple goroutines to share a channel or a single goroutine to send and receive on multiple channels.[79]:147
From these tools one can build concurrent constructs like worker pools, pipelines (in which, say, a file is decompressed and parsed as it downloads), background calls with timeout, "fan-out" parallel calls to a set of services, and others.[82] Channels have also found uses further from the usual notion of interprocess communication, like serving as a concurrency-safe list of recycled buffers,[83] implementing coroutines (which helped inspire the name goroutine),[84] and implementing iterators.[85]
Concurrency-related structural conventions of Go (channels and alternative channel inputs) are derived from Tony Hoare's communicating sequential processes model. Unlike previous concurrent programming languages such as Occam or Limbo (a language on which Go co-designer Rob Pike worked),[86] Go does not provide any built-in notion of safe or verifiable concurrency.[87] While the communicating-processes model is favored in Go, it is not the only one: all goroutines in a program share a single address space. This means that mutable objects and pointers can be shared between goroutines; see § Lack of race condition safety, below.[citation needed]
</p>
</div>
</div>
</div>
</div>
</div>
<!-- Required vendor scripts (Do not remove) -->
<script type="text/javascript" src="https://pipeline.mediumra.re/assets/js/jquery.min.js"></script>
<script type="text/javascript" src="https://pipeline.mediumra.re/assets/js/popper.min.js"></script>
<script type="text/javascript" src="https://pipeline.mediumra.re/assets/js/bootstrap.js"></script>
<!-- Optional Vendor Scripts (Remove the plugin script here and comment initializer script out of index.js if site does not use that feature) -->
<!-- Autosize - resizes textarea inputs as user types -->
<script type="text/javascript" src="https://pipeline.mediumra.re/assets/js/autosize.min.js"></script>
<!-- Flatpickr (calendar/date/time picker UI) -->
<script type="text/javascript" src="https://pipeline.mediumra.re/assets/js/flatpickr.min.js"></script>
<!-- Prism - displays formatted code boxes -->
<script type="text/javascript" src="https://pipeline.mediumra.re/assets/js/prism.js"></script>
<!-- Shopify Draggable - drag, drop and sort items on page -->
<script type="text/javascript" src="https://pipeline.mediumra.re/assets/js/draggable.bundle.legacy.js"></script>
<script type="text/javascript" src="https://pipeline.mediumra.re/assets/js/swap-animation.js"></script>
<!-- Dropzone - drag and drop files onto the page for uploading -->
<script type="text/javascript" src="https://pipeline.mediumra.re/assets/js/dropzone.min.js"></script>
<!-- List.js - filter list elements -->
<script type="text/javascript" src="https://pipeline.mediumra.re/assets/js/list.min.js"></script>
<!-- Required theme scripts (Do not remove) -->
<script type="text/javascript" src="https://pipeline.mediumra.re/assets/js/theme.js"></script>
<!-- This appears in the demo only - demonstrates different layouts -->
<style type="text/css">
.layout-switcher{ position: fixed; bottom: 0; left: 50%; transform: translateX(-50%) translateY(73px); color: #fff; transition: all .35s ease; background: #343a40; border-radius: .25rem .25rem 0 0; padding: .75rem; z-index: 999; }
.layout-switcher:not(:hover){ opacity: .95; }
.layout-switcher:not(:focus){ cursor: pointer; }
.layout-switcher-head{ font-size: .75rem; font-weight: 600; text-transform: uppercase; }
.layout-switcher-head i{ font-size: 1.25rem; transition: all .35s ease; }
.layout-switcher-body{ transition: all .55s ease; opacity: 0; padding-top: .75rem; transform: translateY(24px); text-align: center; }
.layout-switcher:focus{ opacity: 1; outline: none; transform: translateX(-50%) translateY(0); }
.layout-switcher:focus .layout-switcher-head i{ transform: rotateZ(180deg); opacity: 0; }
.layout-switcher:focus .layout-switcher-body{ opacity: 1; transform: translateY(0); }
.layout-switcher-option{ width: 72px; padding: .25rem; border: 2px solid rgba(255,255,255,0); display: inline-block; border-radius: 4px; transition: all .35s ease; }
.layout-switcher-option.active{ border-color: #007bff; }
.layout-switcher-icon{ width: 100%; border-radius: 4px; }
.layout-switcher-body:hover .layout-switcher-option:not(:hover){ opacity: .5; transform: scale(0.9); }
@media all and (max-width: 990px){ .layout-switcher{ min-width: 250px; } }
@media all and (max-width: 767px){ .layout-switcher{ display: none; } }
</style>
<div class="layout-switcher" tabindex="1">
<div class="layout-switcher-head d-flex justify-content-between">
<span>Select Layout</span>
<i class="material-icons">arrow_drop_up</i>
</div>
<div class="layout-switcher-body">
</div>
</div>
<div id="draggable-live-region" aria-relevant="additions" aria-atomic="true" aria-live="assertive" role="log" style="position: fixed; width: 1px; height: 1px; top: -1px; overflow: hidden;"></div></body></html>