<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://wiki.quizz.vn/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://wiki.quizz.vn/feed.php">
        <title>Wiki.Quizz.vn - go:concurrency</title>
        <description></description>
        <link>https://wiki.quizz.vn/</link>
        <image rdf:resource="https://wiki.quizz.vn/lib/exe/fetch.php?media=wiki:dokuwiki.svg" />
       <dc:date>2026-04-15T18:11:51+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://wiki.quizz.vn/doku.php?id=go:concurrency:atomic&amp;rev=1767050378&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.quizz.vn/doku.php?id=go:concurrency:cancel&amp;rev=1767652916&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.quizz.vn/doku.php?id=go:concurrency:channel&amp;rev=1766961907&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.quizz.vn/doku.php?id=go:concurrency:cond&amp;rev=1767050266&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.quizz.vn/doku.php?id=go:concurrency:context&amp;rev=1767652684&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.quizz.vn/doku.php?id=go:concurrency:deadline&amp;rev=1767653172&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.quizz.vn/doku.php?id=go:concurrency:goroutine&amp;rev=1766961879&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.quizz.vn/doku.php?id=go:concurrency:mutex&amp;rev=1767049350&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.quizz.vn/doku.php?id=go:concurrency:once&amp;rev=1767050217&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.quizz.vn/doku.php?id=go:concurrency:rwmutex&amp;rev=1767050003&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.quizz.vn/doku.php?id=go:concurrency:select&amp;rev=1769814876&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.quizz.vn/doku.php?id=go:concurrency:sync&amp;rev=1767652414&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.quizz.vn/doku.php?id=go:concurrency:timeout&amp;rev=1767653012&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.quizz.vn/doku.php?id=go:concurrency:values&amp;rev=1767653215&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.quizz.vn/doku.php?id=go:concurrency:waitgroup&amp;rev=1767050121&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://wiki.quizz.vn/lib/exe/fetch.php?media=wiki:dokuwiki.svg">
        <title>Wiki.Quizz.vn</title>
        <link>https://wiki.quizz.vn/</link>
        <url>https://wiki.quizz.vn/lib/exe/fetch.php?media=wiki:dokuwiki.svg</url>
    </image>
    <item rdf:about="https://wiki.quizz.vn/doku.php?id=go:concurrency:atomic&amp;rev=1767050378&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-29T23:19:38+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>atomic</title>
        <link>https://wiki.quizz.vn/doku.php?id=go:concurrency:atomic&amp;rev=1767050378&amp;do=diff</link>
        <description>sync/atomic

What is it?

`sync/atomic` provides low-level atomic memory primitives for safe, lock-free access to shared integer and pointer values.

What is it used for?

	*  Perform simple concurrent operations without using `Mutex`.
	*  Common ops: atomic add, load/store, compare-and-swap (CAS).</description>
    </item>
    <item rdf:about="https://wiki.quizz.vn/doku.php?id=go:concurrency:cancel&amp;rev=1767652916&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-01-05T22:41:56+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>cancel</title>
        <link>https://wiki.quizz.vn/doku.php?id=go:concurrency:cancel&amp;rev=1767652916&amp;do=diff</link>
        <description>WithCancel

What is it?

`context.WithCancel(parent)` creates a child context that can be canceled manually by calling the returned `cancel()` function.

Signature:
`ctx, cancel := context.WithCancel(parent)`

What is it used for?

	*  Stop background goroutines when you’re done.</description>
    </item>
    <item rdf:about="https://wiki.quizz.vn/doku.php?id=go:concurrency:channel&amp;rev=1766961907&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-28T22:45:07+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>channel</title>
        <link>https://wiki.quizz.vn/doku.php?id=go:concurrency:channel&amp;rev=1766961907&amp;do=diff</link>
        <description>Channel

What is it?

A channel is a typed conduit for sending and receiving values between goroutines. It helps coordinate and synchronize concurrent work.

What is it used for?

	*  Pass data safely between goroutines.
	*  Avoid complicated shared-memory locking.</description>
    </item>
    <item rdf:about="https://wiki.quizz.vn/doku.php?id=go:concurrency:cond&amp;rev=1767050266&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-29T23:17:46+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>cond</title>
        <link>https://wiki.quizz.vn/doku.php?id=go:concurrency:cond&amp;rev=1767050266&amp;do=diff</link>
        <description>sync.Cond

What is it?

`sync.Cond` is a condition variable. It lets goroutines wait until a certain condition becomes true, and be signaled when it changes.

What is it used for?

	*  Implement producer-consumer patterns.
	*  Build your own blocking queues or resource pools.</description>
    </item>
    <item rdf:about="https://wiki.quizz.vn/doku.php?id=go:concurrency:context&amp;rev=1767652684&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-01-05T22:38:04+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>context</title>
        <link>https://wiki.quizz.vn/doku.php?id=go:concurrency:context&amp;rev=1767652684&amp;do=diff</link>
        <description>context.Context

What is it?

`context.Context` is a standard way to carry:

	*  deadlines,
	*  cancellation signals,
	*  and request-scoped values

across API boundaries and between goroutines.

What is it used for?

	*  Cancel work when a request is no longer needed (client disconnected, timeout, shutdown).</description>
    </item>
    <item rdf:about="https://wiki.quizz.vn/doku.php?id=go:concurrency:deadline&amp;rev=1767653172&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-01-05T22:46:12+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>deadline</title>
        <link>https://wiki.quizz.vn/doku.php?id=go:concurrency:deadline&amp;rev=1767653172&amp;do=diff</link>
        <description>WithDeadline

What is it?

`context.WithDeadline(parent, t)` creates a child context that is canceled at the specific time `t` (a `time.Time`).

Signature:
`ctx, cancel := context.WithDeadline(parent, t)`

What is it used for?

	*  Enforce a fixed cutoff time (e.g., must finish before 10:00:05).</description>
    </item>
    <item rdf:about="https://wiki.quizz.vn/doku.php?id=go:concurrency:goroutine&amp;rev=1766961879&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-28T22:44:39+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>goroutine</title>
        <link>https://wiki.quizz.vn/doku.php?id=go:concurrency:goroutine&amp;rev=1766961879&amp;do=diff</link>
        <description>Goroutine

What is it?

A goroutine is a lightweight thread managed by the Go runtime. You start it with the `go` keyword.

What is it used for?

	*  Run tasks concurrently: I/O, API calls, background jobs.
	*  Improve server throughput by doing work in parallel.</description>
    </item>
    <item rdf:about="https://wiki.quizz.vn/doku.php?id=go:concurrency:mutex&amp;rev=1767049350&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-29T23:02:30+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>mutex</title>
        <link>https://wiki.quizz.vn/doku.php?id=go:concurrency:mutex&amp;rev=1767049350&amp;do=diff</link>
        <description>sync.Mutex

What is it?

`sync.Mutex` is a mutual exclusion lock used to protect shared data from concurrent access.

What is it used for?

	*  Prevent data races when multiple goroutines read/write the same variable/structure.
	*  Protect critical sections (a block of code that must not run concurrently).</description>
    </item>
    <item rdf:about="https://wiki.quizz.vn/doku.php?id=go:concurrency:once&amp;rev=1767050217&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-29T23:16:57+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>once</title>
        <link>https://wiki.quizz.vn/doku.php?id=go:concurrency:once&amp;rev=1767050217&amp;do=diff</link>
        <description>sync.Once

What is it?

`sync.Once` ensures that a function is executed only once, even when called by multiple goroutines concurrently.

What is it used for?

	*  One-time initialization (lazy init), e.g., create a singleton, load config once.
	*  Safe</description>
    </item>
    <item rdf:about="https://wiki.quizz.vn/doku.php?id=go:concurrency:rwmutex&amp;rev=1767050003&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-29T23:13:23+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>rwmutex</title>
        <link>https://wiki.quizz.vn/doku.php?id=go:concurrency:rwmutex&amp;rev=1767050003&amp;do=diff</link>
        <description>sync.RWMutex

What is it?

`sync.RWMutex` is a read/write mutual exclusion lock.
It allows multiple readers at the same time, but only one writer (and writers exclude readers).

What is it used for?

	*  Protect shared data that is read very often but written less frequently.</description>
    </item>
    <item rdf:about="https://wiki.quizz.vn/doku.php?id=go:concurrency:select&amp;rev=1769814876&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-01-30T23:14:36+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>select</title>
        <link>https://wiki.quizz.vn/doku.php?id=go:concurrency:select&amp;rev=1769814876&amp;do=diff</link>
        <description>Go select with Non-blocking Send and Receive

Overview

In Go, the select statement allows a goroutine to wait on multiple channel operations.
When combined with a default case, select can be used to perform non-blocking send and receive operations on channels.</description>
    </item>
    <item rdf:about="https://wiki.quizz.vn/doku.php?id=go:concurrency:sync&amp;rev=1767652414&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-01-05T22:33:34+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>sync</title>
        <link>https://wiki.quizz.vn/doku.php?id=go:concurrency:sync&amp;rev=1767652414&amp;do=diff</link>
        <description>sync package

What is it?

`sync` is a Go standard library package that provides basic synchronization primitives for coordinating goroutines and protecting shared data.

What is it used for?

	*  Protect shared resources from concurrent access (locks).</description>
    </item>
    <item rdf:about="https://wiki.quizz.vn/doku.php?id=go:concurrency:timeout&amp;rev=1767653012&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-01-05T22:43:32+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>timeout</title>
        <link>https://wiki.quizz.vn/doku.php?id=go:concurrency:timeout&amp;rev=1767653012&amp;do=diff</link>
        <description>WithTimeout

What is it?

`context.WithTimeout(parent, d)` creates a child context that is automatically canceled after duration `d`.

Signature:
`ctx, cancel := context.WithTimeout(parent, d)`

What is it used for?

	*  Time-limit outgoing HTTP requests.</description>
    </item>
    <item rdf:about="https://wiki.quizz.vn/doku.php?id=go:concurrency:values&amp;rev=1767653215&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-01-05T22:46:55+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>values</title>
        <link>https://wiki.quizz.vn/doku.php?id=go:concurrency:values&amp;rev=1767653215&amp;do=diff</link>
        <description>WithValue

What is it?

`context.WithValue(parent, key, val)` returns a child context that carries a key/value pair.

Signature:
`ctx := context.WithValue(parent, key, val)`

What is it used for?

	*  Carry request-scoped metadata like request-id, trace-id, user-id.</description>
    </item>
    <item rdf:about="https://wiki.quizz.vn/doku.php?id=go:concurrency:waitgroup&amp;rev=1767050121&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-29T23:15:21+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>waitgroup</title>
        <link>https://wiki.quizz.vn/doku.php?id=go:concurrency:waitgroup&amp;rev=1767050121&amp;do=diff</link>
        <description>sync.WaitGroup

What is it?

`sync.WaitGroup` is a counter-based synchronization primitive used to wait for a set of goroutines to finish.

What is it used for?

	*  Start N goroutines and wait until all of them are done.
	*  Coordinate parallel tasks (fan-out) and join results (fan-in).</description>
    </item>
</rdf:RDF>
