タグ

2022年2月27日のブックマーク (4件)

  • MySQLのギャップロックとネクストキーロック - 41から始めました

    曖昧に理解してるかもと思い、自分の振り返りのために書いてます。 先日書いた記事で作ったデータで説明します。 MySQLのロック 通常、DML実行時に取得されるロックは排他ロックと共有ロックで構成されます。 最初にトランザクションでロックをかけたほうが排他ロック、 ロックがかかったデータを参照だけするためにかけたほうが共有ロックと呼ばれます。 共有ロックがかかった状態では他のトランザクションでも共有ロックはかかり(データの読み取りができ)ますが、データの書き込みはできません。 一方、他のトランザクションが同じ行をロックするのを回避するタイプのロックを排他ロックといいます。 トランザクション分離レベルに応じて、 他のトランザクションが同じ行に書き込むのをブロックできる 他のトランザクションが同じ行を読み取るのをブロックできる となります。 MySQLで書き込み中データ読み取れると思ったでしょ?

    MySQLのギャップロックとネクストキーロック - 41から始めました
  • コンセプトから理解するRust

    2022年2月12日紙版発売 2022年2月7日電子版発売 原旅人 著 B5変形判/360ページ 定価3,520円(体3,200円+税10%) ISBN 978-4-297-12562-2 Gihyo Direct Amazon 楽天ブックス 丸善ジュンク堂書店 ヨドバシ.com 電子版 Gihyo Digital Publishing Amazon Kindle ブックライブ 楽天kobo honto 書のサポートページサンプルファイルのダウンロードや正誤表など このの概要 Rustはメモリ安全,スレッド安全を保ちつつ,高パフォーマンスなプログラムを開発できるプログラミング言語です。また,手続き型,オブジェクト指向型,関数型でのプログラミングに対応できるマルチパラダイムの言語でもあります。ただ,そういったRustのポテンシャルを引き出すには,所有権やライフタイム,ジェネリクスやトレ

    コンセプトから理解するRust
  • Rust における `From<T>` とか `Into<T>` とかの考え方 - Qiita

    Rustを始めてみて。他の言語とは感覚が違うなあ、と感じる点は、ある型からある型への値の明示的な変換、というものを意識する機会がけっこう多いところ。 たとえば、関数の引数や戻り値のシグネチャが、 From<T> や Into<T> 、AsRef<T>、 Fromなんちゃら、といった名前のTrait制約を要求してくることが割に多い。これらのTraitは、「どんな振舞いをする値か?」という情報というよりはむしろ、「どんな値に変換できるのか?」といったことを言っている。 ボクシングを避ける GC つきの多くの言語やc++なんかでは、異なる具象型をもつ値を同じ変数として取り扱いたいとき、ヒープ領域を確保して値を隔離して、値そのもののかわりに「参照の値」を変数にいれておく、という方法がしばしば使われる。 参照(ポインタ)それ自体は平等に同じサイズの値として取り扱うことができるため、同じ変数にいれたい

    Rust における `From<T>` とか `Into<T>` とかの考え方 - Qiita
  • Rustのクロージャtraitについて調べた(FnOnce, FnMut, Fn)

    概要 Rust勉強中です。 クロージャを扱うときに出てくる三つのtrait (FnOnce, FnMut, Fn) について、主に以下の観点で調べたので、備忘録的にまとめます。 クロージャを定義したとき、どのtraitが実装されるのか クロージャを扱うときにどのtraitを使えばいいのか 誤りなどありましたらご指摘いただければと思います。 なお、参考文献は末尾にまとめました。 以下の内容は、v1.23.0 (2018/1/12時点の最新のstable)に基づきます。 追記(2021/02/14): 最新版(v1.50.0)に基づいた内容に変更、文章の修正、参考文献の更新 前提: クロージャとFnOnce, FnMut, Fnについて Rustでクロージャを定義すると、キャプチャした変数をメンバとして持つ匿名構造体が、コンパイル時に内部的に作られます。12 この内部的に作られる型はコンパイル

    Rustのクロージャtraitについて調べた(FnOnce, FnMut, Fn)