並び順

ブックマーク数

期間指定

  • から
  • まで

121 - 160 件 / 174件

新着順 人気順

並行処理の検索結果121 - 160 件 / 174件

  • WWDC 2021のSwiftの並行処理関連のセッション一覧 - Qiita

    WWDC 2021 が始まりました。 今年は Swift 5.5 で並行処理の大型アップデートが予定 されており、長年待ち望まれていた async/await に加えて、さらに先進的な Structured Concurrency や Actor なども導入されます。そのため、 WWDC 2021 では並行処理関連のセッションが多数予定されています。 そこで、セッション一覧から並行処理関連のものを探して一覧にしてみました。内容はまだわかりませんが、個人的に重要度が高そうだと思う順に並べてみました。各セッション下部のリンクは内容に関係しそうな Proposal です。 (感想) は実際にそのセッションを見た感想です。 もし抜け漏れなどあればコメント下さい🙇 What‘s new in Swift これは並行処理についてのセッションではないですが、 Swift 5.5 での新機能の大きな割合

      WWDC 2021のSwiftの並行処理関連のセッション一覧 - Qiita
    • Goルーチンとチャネルを使用した並行・並列処理 具体的なコードをよく起こるトラブルとともに紹介

      Go、Python、Kotlin、Rust、TypeScript の5つの言語について「並列処理、並行処理の手法」というテーマに絞り解説する「並列処理をGo/Rust/Kotlin/Python/JSで解説!思想の違いを体感しよう」。Go編では森下篤氏が登壇。Goの並列・並行処理のやり方を紹介します。 Goの並列・並行処理 森下篤氏(以下、森下):私のところでは、Golangについて説明します。弊社は会社名もGOなので非常にわかりにくいのですが、基本的には大文字で「GO」と書くと会社を示すことが多いです。(スライドを示して)小文字の「Go」やスライドのアイコンを使った時には、言語のGoと思ってもらえると助かります。 まず、Goでの並列・並行処理について話します。独自の軽量スレッドであるGoルーチンというものがあって、Goルーチン同士の同期・非同期通信の仕組みであるチャネルが構文に含まれてい

        Goルーチンとチャネルを使用した並行・並列処理 具体的なコードをよく起こるトラブルとともに紹介
      • Swift の「async let ...」と「TaskGroup」の使い分け早見表

        /// `TaskGroup` を使って実装された `race(lhs:rhs:)` /// 本文中に実装を掲載しています let result = await race( lhs: { try? await Task.sleep(for: .seconds(100)) return 100 }, rhs: { try? await Task.sleep(for: .seconds(1)) return 1 } ) print(result) // 1 /// 同期的に `Int` が返ります(処理に0秒かかるとする、同期関数) func num0() -> Int { return 0 } /// 非同期的に `Int` が返ります(処理に1秒かかるとする、非同期関数) func num1() async -> Int { try! await Task.sleep(for: .seco

          Swift の「async let ...」と「TaskGroup」の使い分け早見表
        • Bastion

          Bastion Highly-available Distributed Fault-tolerant RuntimeBastion is a highly-available, fault-tolerant runtime system with dynamic dispatch oriented lightweight process model. GitHub ➖ Star ➖ Blog ➖ Sponsor ➖ Watch Explore Bastion is a highly-available, fault-tolerant runtime system with dynamic dispatch oriented lightweight process model. It supplies actor model like concurrency with lightweigh

          • mapの競合状態のはなし - 今川館

            目次 mapの競合状態とは何か? どうしたらいいのか? sync.RWMutexを使う 共有ロックと排他ロック sync.Mapを使う atomic.Valueを使う ロックとCompare and swap さいごに 感想 mapの競合状態とは何か? GoのmapはあるgoroutineでReadしているときに別のgoroutineからWriteしてはいけないというルールがある。 もし違反するとpanicを起こす。 このことはgo1.6のリリースノートに書いてある(他の出典を探したけど見つけられなかった・・) Go 1.6 Release Notes - The Go Programming Language if one goroutine is writing to a map, no other goroutine should be reading or writing the

              mapの競合状態のはなし - 今川館
            • Writing Rust the Elixir way

              Bernard Kolobara Posted on Nov 28, 2020 • Updated on Feb 17, 2021 • Originally published at lunatic.solutions It's not a secret that I'm a big fan of Elixir, so when I started doing Rust development I tried to bring some ideas from Elixir to the world of Rust. This post describes some of the tools I'm building to bring the power of Elixir to Rust. What makes Elixir so great? It's hard to just pick

                Writing Rust the Elixir way
              • デッドロック発見器を作って学ぶマルチスレッドプログラミング ★共有変数編★ (2019/10/19 12:30〜)

                キャンセル・参加費用の払い戻しについて主催者からの説明: お申込み後のキャンセルはできません.セミナーについての説明をよくお読みいただき,十分ご検討の上お申し込みください.セミナー当日に不参加であったとしても参加費用は返却されません. セミナーの内容 参加者が自分の好きなプログラミング言語でデッドロック発見器を作り,それを使ってマルチスレッドプログラミングを学ぶハンズオンセミナーです. 作っていただくデッドロック発見器はマルチスレッドプログラムの動き全体を状態遷移図として可視化し,その過程でデッドロック状態を発見するというものです.以下にデッドロック発見器の出力例を示しました. 水色の状態は初期状態で,赤い状態がデッドロック状態です.デッドロック状態からは遷移が1つも出ていないので,この状態に達するとプログラムは停止してしまうことがわかります.動作し続けるパスもあり,必ず再現するわけではな

                  デッドロック発見器を作って学ぶマルチスレッドプログラミング ★共有変数編★ (2019/10/19 12:30〜)
                • 並列分散処理基盤のいま~45分で学ぶHadoop/Spark/Kafka/ストレージレイヤSW入門~ - セミナープログラム - オープンソースカンファレンス2020 Online/Kyoto

                  並列分散処理基盤のいま~45分で学ぶHadoop/Spark/Kafka/ストレージレイヤSW入門~ 2020年8月28日(金) 17:15 〜 18:00 OSSベースの分散処理基盤としてApache Hadoopが誕生して10余年が経ち、大規模並列分散処理の領域において、これまでに多種多様なソフトウェアが開発されてきました。 本セッションでは、それらのソフトウェアがどのような経緯で誕生し、どのように使われるのかをお話ししつつ、近年注目を集めているデータ分析を指向したストレージレイヤSWであるDelta Lakeについてもご紹介します。

                    並列分散処理基盤のいま~45分で学ぶHadoop/Spark/Kafka/ストレージレイヤSW入門~ - セミナープログラム - オープンソースカンファレンス2020 Online/Kyoto
                  • ruby/doc/ractor.md at master · ruby/ruby

                    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

                      ruby/doc/ractor.md at master · ruby/ruby
                    • Javaの並列/並行処理の基本

                      2023.06.29 JJUG Java仕様勉強会資料

                        Javaの並列/並行処理の基本
                      • 並列プログラミング処理系Pelemayの
ARMアーキテクチャと
IoTプラットフォームNervesへの適用

                        近年ではIoTでエッジ/フォグ・コンピューティングを行う事例が増えてきており,IoTにも計算パワーが求められるようになってきている.そこで,近年,アメリカを中心に注目を集めている開発プラットフォームNervesと,我々が研究開発を進めている並列処理ネイティブコード生成系である Pelemay Super-Parallelism を組合わせて,エッジ/フォグ・コンピューティングに用いることを提案する.現状の Pelemay は Clang / GCC を使って単一コアのSIMD命令を含むネイティブコードを生成する.本研究により,Raspberry Pi 3 Model B+ (ARM Cortex-A53ベース) と Raspberri Pi 4 Model B (ARM Cortex-A72ベース)の Nerves システム上と,Jetson Nano (ARM Cortex-A57ベース

                          並列プログラミング処理系Pelemayの
ARMアーキテクチャと
IoTプラットフォームNervesへの適用
                        • Rubyで並列処理を行うparallel gemの使い方と勘所 -- ぺけみさお

                          parallelを使うとKenrel#forkやThreadを駆使するのと比べて簡単に並列処理を書くことができます。parallelは拙作のBestGems.orgによると、合計ダウンロード数で151位、デイリーダウンロード数は100位前後で、現時点で非常にメジャーなGemとなっています。 この記事ではparallelの基本的な使い方と、実際に使ってみて感じた注意点をTipsとして整理したいと思います。 parallelはREADME.mdが親切に書かれています。 加えて主要な部分は500行程度の小さなGemです。 利用する場合は公式のドキュメントとソースコードを確認されることをおすすめします。 前提ソフトウェア ソフトウェア バージョン 備考 ruby 2.5.1 - parallel 1.12.1 - rails 5.0 - 使い方 インストール gem install paralle

                          • Swift 5.5から登場したActorについて

                            サンプルコード https://github.com/SatoTakeshiX/first-step-swift-concurrency/tree/main/try-concurrency.playground 対応するサンプルコードにはページ名を記載します。 検証環境 Xcode 13.2.1 Swift 5.5 データ競合 マルチスレッドプログラミングにおいて、重要な問題はデータ競合(data race)をいかに防ぐかです。複数のスレッドから一つのデータにアクセスした場合、あるスレッドがデータを更新するとデータが不整合を起こしてしまう可能性があります。デバックが非常に難しくやっかいなバグをになることが多いです。 データ競合がどういうものかをコードで解説します。 例えばゲームの点数を管理するScoreという型をクラスで定義します。 // Page: 3-1-data-race class

                              Swift 5.5から登場したActorについて
                            • ハードウェアの速度をどう評価するか考える(1) ~クロック、OPS~ - arutema47's blog

                              この記事の目的 現代ハードウェアの計算性能を評価する尺度であるメモリ律速の概念とルーフラインモデルについて理解を深めること。 対象読者はメモリバンド幅やOPSなどの概念があまりわかっていない人です。例えば本記事を通し、あるアルゴリズムが速度が十分に出ない時、それがハードウェアのどの性能(メモリか演算)に律速されてるかイメージできるようになるのが目標です。 思うままに書いていたら肝心のメモリの話まで行きませんでした。そのため前編はクロックや演算(OPS)についてです。 TPUのルーフラインモデル この図はTPUの論文に出てくるRoofline modelです。この図が意味するところを理解するのが本記事の最終目標となります。 ハードウェアの速度をどう評価すればいいか? ベンチマークによる評価 ハードウェア速度の評価は昔から大きな問題でした。わかりやすい評価指標にある代表的なアルゴリズム数種類で

                                ハードウェアの速度をどう評価するか考える(1) ~クロック、OPS~ - arutema47's blog
                              • 並列処理でActiveRecordの処理時間を短縮する - patorashのブログ

                                ここ最近は並列化による処理速度アップを色々試しています。 Railsプロジェクトのデータに少々不備があることに気づいたので、それを修正するために該当データを抽出しようと思って雑にループを回したら、データ量が多いせいか、全然終了しませんでした。業を煮やした私は、これも並列化してしまおう!と思って並列化の情報を集めることに。 Rubyでの並列処理は、parallelというgemを使うと並列処理がすごく簡単にできました。 github.com parallelのいいところ parallelのいいところは、 並列処理したい対象の配列データを渡すだけでいい map, each, any?, all? などに対応している マルチプロセス、マルチスレッドの両方に対応している というところでしょうか。 簡単な使い方の例 Parallelに対して、配列を渡したら、自動的にCPUの数だけプロセスをフォークして

                                  並列処理でActiveRecordの処理時間を短縮する - patorashのブログ
                                • ZIO | ZIO

                                  Type-safe, composable asynchronous and concurrent programming for Scala

                                    ZIO | ZIO
                                  • Finding Goroutine Bugs with TLA+

                                    My job these days is teaching TLA+ and formal methods: specifying designs to find bugs in them. But just knowing the syntax isn’t enough to write specs, and it helps to have examples to draw from. I recently read Chris Siebenmann’s Even in Go, concurrency is still not easy and thought it would make a good case study for writing a spec. In it, he gives an example of Go code which deadlocks: /*1 */

                                    • WebWorkerでゴリゴリの重い処理をさせて横から制御したい時の手段 | g200kg Music & Software

                                      これは Javascript のかなり細かい部分の話なので似たようなケースで困った事がある人以外にとってはどうでも良い話だと思いますが......。 JavaScript は元々シングルスレッド構造なのであまり重い処理をさせるには向いていないのだ、という事は昔から言われていました。 重い処理をしようとした時にまず影響を受けやすいのは UI 周りの動作です。 UI をちゃんと動かしつつ重い処理をさせるためには、処理を小分けにしてタイマーから駆動する等の手法がとられます。 またこの時、コールバックで小分けにした処理を繋げるとソースが見づらくなるので Promise や async/await を使う、という手段が定石となっていったのですが、そもそも、ひとまとまりの重い処理をやらせたいならやっぱり別スレッドで走らせたい、という事で WebWorker というものが作られました。 これによって J

                                        WebWorkerでゴリゴリの重い処理をさせて横から制御したい時の手段 | g200kg Music & Software
                                      • マルチコアのプログラミングとデバッグに関する課題克服に必要なものとは?

                                        本稿では、各種マルチコアプロセッサを紹介し、それらのデバイスが広く使われるようになった理由を含む、マルチコアプロセッシングのさまざまな側面について論じます。また、1個のチップ上に複数のコアを搭載することによって生じる問題に着目し、最新のマルチコア認識型デバッガを使用することで、それらの複雑なタスクにいかに容易に対応できるかを示します。 システム性能 組込みコンピューティングシステムの性能を向上させるには、巧妙なコンパイラアルゴリズムを使用したり、効率的なハードウェアソリューションを実現するなど、多岐にわたる方法があります。例えば、コンパイラの最適化は、読みやすく理解しやすい高水準な言語で書かれたコードから最も効率的な命令スケジューリングを得る上で非常に重要です。また、システムはプロジェクトにおいて、並列処理の利点を生かして同時に複数の処理を行うことができます。もちろん、クロック周波数のスケ

                                          マルチコアのプログラミングとデバッグに関する課題克服に必要なものとは?
                                        • AsyncCacheのススメ(非同期処理の多重実行防止のための個人的ベタープラクティス)

                                          この記事は何? ボタンをタップすることでAPIコールなどの非同期処理を実行するような実装をしている場合に、ボタン連打によって非同期処理が何度も呼び出されてしまう問題を回避するため実装について、個人的なベタープラクティスを伝える記事です。 この記事が対象としている読者 Flutterを使い始めてまだ日が浅い開発者 「Flutterらしい書き方って何だろう」と考えるようになった開発者 「AsyncCacheって何?」と気になった開発者 結論 非同期処理を重複して実行させないような実装を行う際には、asyncパッケージの AsyncCache.ephemeral() を使うと手軽に多重実行を防止できるため便利でおすすめです。 cacheStrategy = AsyncCache.ephemeral(); ~ 省略 ~ ElevatedButton( onPressed: () async { a

                                            AsyncCacheのススメ(非同期処理の多重実行防止のための個人的ベタープラクティス)
                                          • USB Type-Cによる並列バッテリ充電、この手法は消費者に何をもたらすのか?

                                            はじめに USB Type-Cでは、旧世代のUSBと比べてはるかに高い柔軟性が得られます。そのため、USB Type-C(以下、USB-C)に対応するポートは、民生用機器において標準的に使用されるようになりました。そうした機器では、より多くの電力に対応しつつ、より長いバッテリ寿命を実現することが強く求められています。つまり、より高い電力レベルで充電できるようにしなければならないということです。本稿では、まず並列に接続したバッテリを充電(以下、並列バッテリ充電)するためのアーキテクチャについて説明します。その基本とユース・ケースについて押さえた上で、USB-Cを利用して充電を行う方法と得られる効果について解説します。更に、USB-Cを利用した並列バッテリ充電が民生機器の市場にもたらすメリットとデメリットについてまとめます。 並列バッテリ充電とは何なのか? バッテリ管理(バッテリ・マネージメン

                                              USB Type-Cによる並列バッテリ充電、この手法は消費者に何をもたらすのか?
                                            • 恐れるな!並行性 - The Rust Programming Language 日本語版

                                              恐れるな!並行性 並行性を安全かつ効率的に扱うことは、Rustの別の主な目標です。並行プログラミングは、プログラムの異なる部分が独立して実行することであり、 並列プログラミングはプログラムの異なる部分が同時に実行することですが、多くのコンピュータが複数のプロセッサの利点を生かすようになるにつれ、 重要度を増しています。歴史的に、これらの文脈で行うプログラミングは困難で、エラーが起きやすいものでした: Rustはこれを変えると願っています。 当初、Rustチームは、メモリ安全性を保証することと、並行性問題を回避することは、 異なる方法で解決すべき別々の課題だと考えていました。時間とともに、チームは、所有権と型システムは、 メモリ安全性と並行性問題を管理する役に立つ一連の強力な道具であることを発見しました。 所有権と型チェックを活用することで、多くの並行性エラーは、実行時エラーではなくコンパイ

                                              • 【Unity】【UniTask】マルチスレッドとしてのTaskからUniTaskを眺める - LIGHT11

                                                Taskのマルチスレッドを実現するための機能という側面からUniTaskについて考えてみます。 はじめに SynchronizationContextとは? TaskAwaiterとTaskのスレッド管理 UniTaskはSynchronizationContextを使わない UniTaskでマルチスレッド 参考 Unity2020.1.10 UniTask 2.0.37 はじめに UniTaskはUnityにおいてTaskの代わりに使えるように作られたライブラリで、処理効率に優れています。 github.com Taskの代わりといいましたが、Taskの役割には「非同期処理」と「マルチスレッド」という二つの側面があります。 そしてこのUniTaskはどちらかというとこのうちの非同期処理の方を代替するためのものとのことです。 UniTaskはどちらかというとJavaScript的(シングル

                                                  【Unity】【UniTask】マルチスレッドとしてのTaskからUniTaskを眺める - LIGHT11
                                                • CHAGE | IIJ Engineers Blog

                                                  並列処理管理ライブラリ task を含む、l4goの公開 こんにちは、くまさかです。 今回は、Go言語開発を支えるライブラリを公開しましたので、そちらの紹介記事です。 ちなみに今回の記事は、どうしてもGo言語寄りな話が少し登場します。 Go言語に関する説明は… くまさか 2022年02月21日 月曜日 “CHAGE” の大切な要素 こんにちは、CHAGE 開発メンバーの くまさか です。 今回は 5つ目の記事で、CHAGE 紹介シリーズ最後の記事です。 今まで 4つの記事にわたり、CHAGE や ASKS、 連携させる MPPP… くまさか 2020年02月07日 金曜日

                                                    CHAGE | IIJ Engineers Blog
                                                  • Python の高速化 - MicroAd Developers Blog

                                                    はじめに 機械学習エンジニアの大庭です。普段はマイクロアドが提供する広告配信プラットフォーム UNIVERSE Ads に接続する機械学習 API の研究開発をしています。 マイクロアドでは、機械学習モデルの学習側との連携が容易なこととメンテナンス性を重視して Python で機械学習 API を実装しています。Python は使いやすい反面、基本文法は速いとは言えない言語です。そのため、実行時間制約の厳しい Real Time Bidding (RTB) のなかで使うには高速化を意識しておく必要があります。今回は様々ある Python の高速化手法の理解と整理のため記事にしました。 個人的にですが、Python の高速化は以下の手順で行っていくのがいいと思っています。この記事では、この手順毎に便利なツールやライブラリをまとめました。 ボトルネックの特定 計算量(オーダー)を減らす コード

                                                      Python の高速化 - MicroAd Developers Blog
                                                    • Goroutines Are Not Significantly Smaller Than Threads

                                                      Goroutines Are Not Significantly Smaller Than Threads Mar 12, 2021 The most commonly cited drawback of OS-level threads is that they use a lot of RAM. This is not true on Linux. Let’s compare memory footprint of 10_000 Linux threads with 10_000 goroutines. We spawn 10k workers, which sleep for about 10 seconds, waking up every 10 milliseconds. Each worker is staggered by a pseudorandom delay up to

                                                      • マルチスレッド :: やり直しJava

                                                        スレッドの現在の状態は ThreadクラスのgetState()メソッドで確認することができます。 スレッド間通信と同期スレッド間通信スレッド間通信と言うと 大袈裟な感じもしてしまいますが、スレッド間でデータをやり取りしたり 待ち合わせを行うことを指します。スレッド間通信は共有メモリを介して行います。共有メモリとして利用できるのは ヒープ領域に置かれたインスタンスやクラスフィールド等です。具体的には次のような方法でスレッド間通信を行うことができます。 クラスフィールドを介してスレッド間通信を行う。クラスのシングルトンオブジェクトを介してスレッド間通信を行う。共有するオブジェクトの参照を それぞれのスレッドで持ち合い、共有オブジェクトを通してスレッド間通信を行う。並列処理を行う場合、スレッド間通信が必要なければ シングルスレッドの場合と変わらないので 難しいことは何もありません。しかし 大抵

                                                        • Transformations on Applicative Concurrent Computations - FP Complete

                                                          When deciding which language to use to solve challenges that require heavy concurrent algorithms, it’s hard to not consider Haskell. Its immutable and persistent data structures reduce the introduction of accidental complexity, and the GHC runtime facilitates the creation of thousands of (green) threads without having to worry as much about the memory and performance costs. The epitome of Haskell’

                                                            Transformations on Applicative Concurrent Computations - FP Complete
                                                          • MySQLのMVCCとトランザクション内における集計について

                                                            この記事は何? トランザクション分離レベルがRead CommittedなときのMVCCの挙動とトランザクション内における集計で学びがあったので忘備録として共有します。 そもそも、MVCCとは? MVCC(Multi-Version Concurrency Control)は、各トランザクションに一意なバージョンを付与する技術です。データへの同時アクセスが行われた際、各トランザクションが独自のデータバージョンを持つことで、データへの競合を回避させ、並列処理を実現します。このアプローチにより、読み取りと書き込みの操作が相互にブロックされず、システム全体の効率とパフォーマンスが向上します。 Read Committedのトランザクション分離レベルにおけるMVCCの特性は、トランザクション内でデータを読み取る際、そのトランザクションが開始された時点でのコミット済みのデータのみを参照できることです

                                                              MySQLのMVCCとトランザクション内における集計について
                                                            • Polkadot: Web3 Interoperability | Decentralized Blockchain

                                                              Polkadot enables cross-blockchain transfers of any type of data or asset, not just tokens. Connecting to Polkadot gives you the ability to interoperate with a wide variety of blockchains in the Polkadot network. Polkadot provides unprecedented economic scalability by enabling a common set of validators to secure multiple blockchains. Polkadot provides transactional scalability by spreading transac

                                                                Polkadot: Web3 Interoperability | Decentralized Blockchain
                                                              • Handling Concurrency Without Locks

                                                                Concurrency is not very intuitive. You need to train your brain to consider what happens when multiple processes execute a certain code block at the same time. There are several issues I often encounter: Failing to recognize potential concurrency issues: It's not uncommon for both beginner and seasoned developers to completely miss a potential concurrency problem. When this happens, and the concur

                                                                • KotlinとCoroutineに入門してみた

                                                                  こんにちは、kz_moritaです。 これまではずっと iOS をやっていたのですが、最近サーバーサイド Kotlin を書き始めたので今日は Kotlin の Coroutine について勉強がてら軽く触ってみました。 Kotlin 完全に初心者なので、IDE で project を作るところから詳しめに書いていきます。 準備 開発環境としては、IntelliJ IDEA CE を使う想定なので、別環境の方は適宜読み替えてください。 まずはプロジェクトを作ります。 File > New > Project… Gradle で環境を作るので、以下の写真のように Gradle を選択し、 Kotlin/JVM を選択状態で Next を押します。 GroupId に組織名など(個人の場合は適当で良いはず)をいれ、ArtifactIcd にこのアプリ名を入れます。 Project 名と Pro

                                                                    KotlinとCoroutineに入門してみた
                                                                  • ミューテックスとアトミック処理について

                                                                    主にアトミック処理に関する質問です。 いくつか不明な点があります。 アトミック処理とミューテックスの違いについて確認しておきます。 mutex と atomic の違いは何か、どちらが良いか アトミック操作 アトミック操作の長所は、ロックに比べて比較的処理が速く、デッドロックやコンボイなどを回避できる点にあります。 短所は、限られた操作しか行うことができず、より複雑な操作を効率良く総合的に扱うには不十分なことです。 次に、ロックフリーについて・・・ C++ストラウストラップ氏の本の中では以下のようにあります。 ロックフリープログラミングは明示的なロックを使わずに並行プログラムを開発するためのの一連の技法だ。 明示的なロックの代わりに使うのが、小規模オブジェクトに対するデータ競合を防ぐための(ハードウェアが直接サポートする)基礎的な演算である。データ競合が発生しない基礎的な演算は、一般的にア

                                                                      ミューテックスとアトミック処理について
                                                                    • 【Ruby】Thread(スレッド)を理解する - Qiita

                                                                      Thread(スレッド)とは? Thread(スレッド)とはプログラムの一連の処理のまとまりのことです。 複数の処理の流れ(スレッド)を持つプログラムをマルチスレッドのプログラムと呼び、複数の処理を並行して実行させるプログラミングのことを並行(concurrent)プログラミングと呼びます。 RubyのThreadクラスはこの並行(concurrent)プログラミングを実現するために使用されます。 Rubyでマルチスレッドを作成する。 プログラム開始時に生成されるスレッドはメインスレッド、現在実行中のスレッドはカレントスレッドと呼ばれます。 RubyではThread#mainを用いる事でメインスレッドを確認できます。 また、Thread#listでプログラム上に存在するスレッドが配列で表示されます。 p Thread.main #=> #<Thread:0x00007f9600882f00

                                                                        【Ruby】Thread(スレッド)を理解する - Qiita
                                                                      • Pythonにasyncioってあるけどよく知らなかったので調べた

                                                                        1.はじめに Pythonのasyncioは、async・await構文を利用して並行処理を行うため公式ライブラリです。 筆者はいくつかのライブラリでasync・awaitまたはasyncioなるキーワードを目にしつつも、理解を後回しにしてきました。この度一念発起して情報を整理し、同じような人たちのために情報をまとめました。 まず、asyncioの基本的な使い方を改めて整理しました。 特に、並行処理のタスク遷移と例外周りについて、パッと検索した範囲ではあまり情報が見つからなかったため、深掘りしてまとめました。 執筆当時の検索結果では、asyncioの古い書き方や機能を利用しているものも多くありました。この記事ではなるべく執筆現在の最新バージョン(Python 3.11)で推奨されている書き方でサンプルを作ってあります。 ただし、asyncioについて色々と書いたものの、async・awai

                                                                          Pythonにasyncioってあるけどよく知らなかったので調べた
                                                                        • 【C#】マルチスレッドプログラミングとは?メリット・デメリットを比較して効果を検証する - LIGHT11

                                                                          マルチスレッドプログラミングの概要と、そのメリット・デメリットについて簡単にまとめます。 マルチスレッドプログラミングとは? 効果1 処理時間が短縮される 効果2 画面のフリーズを防ぐ マルチスレッドで処理してみる 効果があるのはあくまでCPUの処理 参考 関連 Unity2018.3.9 (C#の記事ですがUnityを使って動作確認しています) マルチスレッドプログラミングとは? まずマルチスレッドでないプログラムでは、1つのCPUコアで処理を先頭から順番に行っていきます。 CPUコアを一つしか持たないシングルコアのCPUではもちろん、 マルチコアのCPUにであっても一つのCPUだけを使って処理を行います。並列では行いません。 ここでマルチスレッドのプログラムを書くと、マルチコアCPUではスレッド毎に別のCPUコアで別の処理を行います。 シングルコアのCPUでは、一つのCPUコアで処理を

                                                                            【C#】マルチスレッドプログラミングとは?メリット・デメリットを比較して効果を検証する - LIGHT11
                                                                          • GitHub - TomerAberbach/grfn: 🦅 A tiny (~400B) utility that executes a dependency graph of async functions as concurrently as possible.

                                                                            You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

                                                                              GitHub - TomerAberbach/grfn: 🦅 A tiny (~400B) utility that executes a dependency graph of async functions as concurrently as possible.
                                                                            • Threads and messages with Rust and WebAssembly

                                                                              On most systems, you can implement concurrency using either threads or processes, where the main difference between the two is that threads share memory and processes don’t. Modern web browsers support concurrency through the Web Workers API. Although Web Workers are by default closer to a multi-process model, when used with WebAssembly you can opt-in to a more thread-like experience. Just like in

                                                                                Threads and messages with Rust and WebAssembly
                                                                              • RunLoop.main vs DispatchQueue.main: The differences explained

                                                                                RunLoop.main and DispatchQueue.main are often used as schedulers within Combine. During code reviews, I often encounter inconsistency in using one or another, which made me realize it’s not always clear what the differences are. You might be surprised by the outcome of this article! While you can use both RunLoop.main and DispatchQueue.main in different scenarios, I will focus on its usage within

                                                                                  RunLoop.main vs DispatchQueue.main: The differences explained
                                                                                • iOS Interview Questions and Answers for Senior Developers Part 1 - Swift

                                                                                  iOS Interview Questions and Answers for Senior Developers Part 1 - Swift I recently got into the position of leading the technical interview when my client was searching for a new senior iOS developer. It's a challenging task to evaluate the skills and knowledge of another developer. So in this post, I want to share my results of the most useful iOS and Swift questions and answers with you. I cate

                                                                                  新着記事