はてなブックマークアプリ

サクサク読めて、
アプリ限定の機能も多数!

アプリで開く

はてなブックマーク

  • はてなブックマークって?
  • アプリ・拡張の紹介
  • ユーザー登録
  • ログイン
  • Hatena
  • Hatena

    はてなブックマーク

    トップへ戻る

    • 総合
      • 人気
      • 新着
      • IT
      • 最新ガジェット
      • 自然科学
      • 経済・金融
      • おもしろ
      • マンガ
      • ゲーム
      • はてなブログ(総合)
    • 一般
      • 人気
      • 新着
      • 社会ニュース
      • 地域
      • 国際
      • 天気
      • グルメ
      • 映画・音楽
      • スポーツ
      • はてな匿名ダイアリー
      • はてなブログ(一般)
    • 世の中
      • 人気
      • 新着
      • 新型コロナウイルス
      • 働き方
      • 生き方
      • 地域
      • 医療・ヘルス
      • 教育
      • はてな匿名ダイアリー
      • はてなブログ(世の中)
    • 政治と経済
      • 人気
      • 新着
      • 政治
      • 経済・金融
      • 企業
      • 仕事・就職
      • マーケット
      • 国際
      • はてなブログ(政治と経済)
    • 暮らし
      • 人気
      • 新着
      • カルチャー・ライフスタイル
      • ファッション
      • 運動・エクササイズ
      • 結婚・子育て
      • 住まい
      • グルメ
      • 相続
      • はてなブログ(暮らし)
      • 掃除・整理整頓
      • 雑貨
      • 買ってよかったもの
      • 旅行
      • アウトドア
      • 趣味
    • 学び
      • 人気
      • 新着
      • 人文科学
      • 社会科学
      • 自然科学
      • 語学
      • ビジネス・経営学
      • デザイン
      • 法律
      • 本・書評
      • 将棋・囲碁
      • はてなブログ(学び)
    • テクノロジー
      • 人気
      • 新着
      • IT
      • セキュリティ技術
      • はてなブログ(テクノロジー)
      • AI・機械学習
      • プログラミング
      • エンジニア
    • おもしろ
      • 人気
      • 新着
      • まとめ
      • ネタ
      • おもしろ
      • これはすごい
      • かわいい
      • 雑学
      • 癒やし
      • はてなブログ(おもしろ)
    • エンタメ
      • 人気
      • 新着
      • スポーツ
      • 映画
      • 音楽
      • アイドル
      • 芸能
      • お笑い
      • サッカー
      • 話題の動画
      • はてなブログ(エンタメ)
    • アニメとゲーム
      • 人気
      • 新着
      • マンガ
      • Webマンガ
      • ゲーム
      • 任天堂
      • PlayStation
      • アニメ
      • バーチャルYouTuber
      • オタクカルチャー
      • はてなブログ(アニメとゲーム)
      • はてなブログ(ゲーム)
    • おすすめ

      2025年ランキング

    『ritaさんの記事一覧』

    • 人気
    • 新着
    • すべて
    • スレッドプールの作り方

      11 users

      zenn.dev/rita0222

      (*)が付いている材料は、コア数分用意できると性能がアップします。 シンプルなProducer-Consumerパターン スレッドを1本だけ使うパターンから紹介します。特に小細工する必要も無いので実装もシンプルになります。 メインスレッドから非同期に実行して欲しい処理をワーカースレッドのキューに積む ワーカースレッドはキューから処理を取り出して実行する 生産者(Producer)・消費者(Consumer)パターンと呼ばれる、非常に古典的なデザインパターンの1つです。 コードにするならこんな感じ。 #include <condition_variable> #include <deque> #include <functional> #include <mutex> #include <thread> class worker { public: worker() : thread_([t

      • テクノロジー
      • 2022/05/11 09:40
      • アルゴリズム
      • C++
      • HotEntry
      • Algorithm
      • Programming
      • async/awaitは「できること」より「できないこと」の方が大事

        6 users

        zenn.dev/rita0222

        皆さんawaitしてますか? 私はC#を使う機会が多いのでawaitしまくってますが、実は最近までこの構文の価値を正しく理解していませんでした。 async/awaitという糖衣構文はそれなりに複雑なことをやっていて、それを理解できる人にはそんな糖衣構文要らないのでは? と長い間考えていたのです。私自身、Taskクラスを直接取り回さないと書けない処理を書いたり、C++でTask.ContinueWithに相当する機能を作ったりしたこともあり、それなりに非同期処理については理解している自負がありました。その慢心が、この構文の意図を理解する妨げになっていたなぁという反省をこめて、この記事を書いています。 非同期処理を「手続き的に書けるようにする」のではなく「手続き的にしか書けなくする」 これが今回気付いたことのほぼ全てです。どういうことか、async/awaitを使ったコードとTask.Con

        • テクノロジー
        • 2022/04/13 15:31
        • C#
        • あとで読む
        • プログラムがメモリをどう使うかを理解する(4)

          10 users

          zenn.dev/rita0222

          この記事は このシリーズの4本目です。 前回の記事は こちらです。 まだ色々書きたいことはあるのですが、当初のタイトルである「プログラムがメモリをどう使うか」という観点では、今回で一区切りにします。 プログラムの実行から終了までを追う 前回で スタック・ヒープ・静的領域 という3大領域を認識しました。今回は仕上げとして、プログラムの実行を開始してから終了するまでに、それらがどう確保され、どう利用され、どう解放されていくのかを確認していきましょう。 プログラムを実行する際に、OSからアドレス空間を与えられる プログラムから利用できるメモリにはアドレスが割り振られますが、昨今のOSでは同時に複数のプログラムが動作することが当たり前になっています。昔はわざわざ「マルチタスクOS」と呼んでいましたが、今となってはわざわざそんな呼び方をしなくても当たり前になっていますね。 そうなると心配性な人は「ア

          • テクノロジー
          • 2022/01/12 14:47
          • プログラム
          • あとで読む
          • プログラムがメモリをどう使うかを理解する(3)

            17 users

            zenn.dev/rita0222

            この記事は このシリーズの3本目です。 前回の記事は こちらです。 文字列はどこに置かれるのか? 前回は文字列を保持する変数を3通りの方法で定義してみました。 const char* strA = "HogeHoge"; const char strB[] = "HugeHuge"; std::string strC = "FooBarFooBarFooBarFooBar"; どれもC/C++の入門書にありそうな書き方ですが、これらは全て文字列の実体を格納する場所が異なります。それぞれどこに格納されるのか、調べてみましょう。 「文字列置き場」とそこへのポインタ まず strA から。 &strA が指すアドレス 0x00D3FB30 に入っているのは 0x00FBCC18 という値のようです。イミディエイトウィンドウの出力結果を見るに、これもアドレスのようなので、この近辺を覗いてみましょう

            • テクノロジー
            • 2022/01/09 09:58
            • エンジニア
            • あとで読む
            • プログラミング
            • プログラムがメモリをどう使うかを理解する(2)

              36 users

              zenn.dev/rita0222

              この記事は このシリーズの2本目です。 値の表現 前回は 0xDEADBEEF という16進数を直接代入する瞬間を観察しましたが、それができたところであまり嬉しくはありません。なので、もう少し実用的な値がどのように表現され、メモリ上に配置されるのかを見ていこうと思います。 では、main関数の中に変数を色々追加してみましょう。 int main() { bool b0 = true; bool b1 = false; int hp = 9999; int mp = 255; float rate = 0.5f; double pi = 3.14159265358979323846; int intArray[10]; for (int i = 0; i < 10; ++i) { intArray[i] = i; } std::cout << "Hello World!\n"; // ここで

              • テクノロジー
              • 2022/01/06 05:08
              • メモリ
              • cpu
              • あとで読む
              • プログラミング
              • コンピュータ
              • programming
              • プログラムがメモリをどう使うかを理解する(1)

                937 users

                zenn.dev/rita0222

                この記事の狙い この記事は、端的に言えば この図が言わんとしていることを理解できるようになるための解説を目指しています。 昨今のプログラミング環境において、メモリの管理方法やその実態は、詳細を知らずとも目的を達成できるようになっています。といっても、実際にはメモリは無尽蔵に使えません。制約が厳しい環境下で動かさねばならないプログラムもありますし、多少潤沢に使える環境であっても、無駄に浪費するよりは、必要最低限のメモリで効率よく動作するプログラムの方が、多くの場面においては良いプログラムと言えるでしょう。 メモリのことなど知らなくてもプログラムを書けるのは一つの理想ではありますが、現実的にはその裏に隠されている(抽象化されている)仕組みを知っておいたほうが有利です。また、昨今のレトロゲームにおけるタイムアタックで駆使されるメモリ書き換えのテクニックなども、何故そういったことが可能なのかを知る

                • テクノロジー
                • 2022/01/05 21:41
                • メモリ
                • あとで読む
                • プログラミング
                • プログラム
                • programming
                • 開発
                • デバッグ
                • *プログラミング
                • CPU
                • ハードウェア
                • 作って学ぶLINQのしくみ

                  3 users

                  zenn.dev/rita0222

                  LINQはお好きですか?便利でステキですよね。 しかし便利で簡単に使えるがゆえに、何となく雰囲気で使っているという方もいらっしゃるようです。雰囲気でも使えるのは素晴らしいことですが、しくみから理解した上で使えばさらに威力を発揮してくれるのではないでしょうか。 しくみを理解するには、作ってみるのがいちばん!というわけで、LINQを作るのに必要な知識をおさらいしつつ、実際に作ってみましょう。 foreachの作り方 LINQの話に行く前に、まずはforeachを理解しましょう。 foreachはどんなコレクション(配列、List、Dictionaryなど)でも1つずつ要素を取り出して、処理を記述できる構文です。 var array = new int[] { 0, 1, 2, 3, 4 }; foreach (var element in array) { Console.WriteLine(

                  • テクノロジー
                  • 2020/11/29 21:57
                  • C#
                  • プログラミング
                  • 古典的ゲームループからECSアーキテクチャまで

                    22 users

                    zenn.dev/rita0222

                    はじめに ゲームエンジンアーキテクチャ、というと代表的名著と被ってしまって畏れ多いのですが、昨今のゲームエンジンがどのような経緯でアーキテクチャの形を変えていったのか、まとめたくなったのでまとめたものです。 ゲームループとオブジェクト どんなゲームでも「状態更新・描画」のループ構造を持ちます。 ゲーム中に出てくる要素を「ゲームオブジェクト」という形で表現して、このループ構造を再利用しようとしたのが、ゲームエンジンの始まりと言えます。 Window window; std::vector<GameObject> objects; while (window.draw()) { for (auto&& obj : objects) { obj.update(); } } これであなたもゲームエンジンの開発者です。おめでとうございます! 継承と包含 ゲームオブジェクトというのは偉大な発明ですが、

                    • テクノロジー
                    • 2020/09/25 22:08
                    • プログラム
                    • ゲーム

                    このページはまだ
                    ブックマークされていません

                    このページを最初にブックマークしてみませんか?

                    『ritaさんの記事一覧』の新着エントリーを見る

                    キーボードショートカット一覧

                    j次のブックマーク

                    k前のブックマーク

                    lあとで読む

                    eコメント一覧を開く

                    oページを開く

                    はてなブックマーク

                    • 総合
                    • 一般
                    • 世の中
                    • 政治と経済
                    • 暮らし
                    • 学び
                    • テクノロジー
                    • エンタメ
                    • アニメとゲーム
                    • おもしろ
                    • アプリ・拡張機能
                    • 開発ブログ
                    • ヘルプ
                    • お問い合わせ
                    • ガイドライン
                    • 利用規約
                    • プライバシーポリシー
                    • 利用者情報の外部送信について
                    • ガイドライン
                    • 利用規約
                    • プライバシーポリシー
                    • 利用者情報の外部送信について

                    公式Twitter

                    • 公式アカウント
                    • ホットエントリー

                    はてなのサービス

                    • はてなブログ
                    • はてなブログPro
                    • 人力検索はてな
                    • はてなブログ タグ
                    • はてなニュース
                    • ソレドコ
                    • App Storeからダウンロード
                    • Google Playで手に入れよう
                    Copyright © 2005-2026 Hatena. All Rights Reserved.
                    設定を変更しましたx