タグ

Threadに関するkiyo_hikoのブックマーク (51)

  • Bordeaux-Threads: how to kill a thread?

    kiyo_hiko
    kiyo_hiko 2018/07/03
    (bt:destroy-thread (nth index (bt:all-threads)))
  • http://fluxonix.asia/sukuriputokoubunn/thread/

  • 並行処理プログラミングを究めるシリーズの書 - かとじゅんの技術日誌

    並行処理プログラミングを究めるシリーズの書 とりあえず以下を読んでます。他に何かよいのがあれば教えてください。 Java言語仕様 第3版 (The Java Series) 作者: ジェームズゴスリン,ガイスティール,ビルジョイ,ギッラードブラーハ,James Gosling,Guy Steele,Bill Joy,Gilad Bracha,村上雅章出版社/メーカー: ピアソンエデュケーション発売日: 2006/12メディア: 単行購入: 1人 クリック: 108回この商品を含むブログ (42件) を見る The Java Language Specification The Java Language Specification - Threads and Locks Java並行処理プログラミング ―その「基盤」と「最新API」を究める― 作者: Brian Goetz,Joshua

    並行処理プログラミングを究めるシリーズの書 - かとじゅんの技術日誌
  • スレッド局所記憶 - Wikipedia

    スレッド局所記憶(英: thread local storage, TLS)は、静的もしくは大域的なメモリをスレッドごとに局所的に使用するためのコンピュータプログラミングの方法である。 プロセス内のスレッドはすべてアドレス空間を共有しており、同じプロセスのスレッドから参照する際、静的変数やグローバル変数は同じメモリ番地に配置される。 一方スタック上の変数はすべてのスレッドが自分のスタックを持つためスレッドに対して局所的であり、異なるメモリ番地に存在する。 同じ静的変数・グローバル変数を参照する二つのスレッドが(変数をスレッドに対して局所的にすることで)実際には異なるメモリ番地を参照できることが望ましい場合がある。たとえば典型的な例としてC言語のエラーコードを格納する変数 errno がある。 少なくともメモリアドレスを格納できるサイズの変数をスレッドに対して局所的にすることが可能なら、メモ

  • JDK 7のFork/Join Frameworkで遊ぶ - CLOVER🍀

    JDK 7のリリース前から気になっていた、Fork/Join Frameworkを触ってみました。かなり今更感があるのは、気にしない方向で…。 Fork/Join Frameworkって? 詳しくは、こちらへ。 http://itpro.nikkeibp.co.jp/article/COLUMN/20110527/360769/?ST=develop&P=1 要は、マルチコアを使い倒すための並列処理フレームワークです。対象にしているのは粒度の小さい(細粒度の)並列処理で、Java 5で導入されたExecutorを使ったフレームワークでは粒度が大きくなってしまうので向いていない…というお話だそうな。 とはいえ、たぶんFork/Join Frameworkは計算処理をメインの用途に想定していると思うので、IOを伴うような粒度の大きな処理はExecutorを使った方がいいのではないかと。 何を使

    JDK 7のFork/Join Frameworkで遊ぶ - CLOVER🍀
  • IBM Developer

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    IBM Developer
    kiyo_hiko
    kiyo_hiko 2014/05/07
    主にスレッドセーフに関する話
  • Bordeaux Threads project

    Based on an original proposal by Dan Barlow (Bordeaux-MP) this library is meant to make writing portable multi-threaded apps simple. Read the current API documentation. Supports all major Common Lisp implementations: SBCL, CCL, Lispworks, Allegro, ABCL, ECL, Clisp. The MKCL, Corman, MCL and Scieneer backends are not tested frequently(if ever) and might not work. For discussion, use the mailing lis

    kiyo_hiko
    kiyo_hiko 2014/04/10
    "Portable shared-state concurrency for Common Lisp"
  • 4.2.2 ログのキューイング(update)

    4.2.2 ログのキューイング(update) アプリケーションログを出力する場合、ログの出力を行っている間にアプリケーションの処理が中断します。ログのキューイングを行うことで、アプリケーション処理の完了後適当なタイミングでログを出力することができます。この機能を使うことで、アプリケーションのレスポンスに影響なくログの出力を行うことができます。 Apcoordinatorのログ機構では、デフォルトでログのキューイングを有効にしています。 ■キューの有効・無効 メッセージの順序をアプリケーション内で限定したい場合は、一時的にキューを無効にします。 メッセージがキューに溜まっている場合は、出力を待つことになります。 LogComposer lc = context.getApplicationProfile().getLogComposer(); synchronized(lc) { lc.d

  • マルチスレッド下におけるログ出力性能測定 - torutkのブログ

    一つのJavaプログラムについて、処理をマルチスレッドで並行性を持つように記述し、複数CPU(マルチコア)上でそのプログラムを実行することにより並列処理を実現しようとした際、ログ出力が実行性能にどれだけ影響を及ぼすのかを把握したい、と考えています。 プログラムの開発(特にデバッグ)においては、ログが使えないと苦労します。ただし、ログを埋め込むと、性能に影響を及ぼします。また、ログレベルを抑制し、実際にはログ出力がなかったとしても、ログレベルの判定処理が動くことで、多少の影響はあります。 最近のログ出力ライブラリはスレッドセーフに作られていますが、それは内部で排他区間を持つことになるので、並列処理においては排他による性能への影響は無視できません。 そこで、同一プロセス内でマルチスレッドにより並行実行するプログラムを作成・実行し、複数スレッドからログを出力すると、実行性能にどれだけ影響を及ぼす

    マルチスレッド下におけるログ出力性能測定 - torutkのブログ
    kiyo_hiko
    kiyo_hiko 2014/02/28
    「log4jはSLF4Jと組み合わせることができます。この場合、SLF4JのAPIでは前述のように文字列結合を遅延しているので、log4j単独よりも性能向上が期待できます」
  • Executorsクラス | Javaコード入門

    スレッドプールを利用する – Executorsクラス public static ExecutorService newFixedThreadPool( [int t [,ThreadFactory factory]]) public static ExecutorService newSingleThreadExecutor ([ThreadFactory factory]) public static ScheduledExecutorService newSingleThreadScheduledExecutor( [ThreadFactory factory]) public static ScheduledExecutorService newScheduledThreadPool( int size [,ThreadFactory factory]) t:スレッド数 size

    kiyo_hiko
    kiyo_hiko 2014/02/24
    スレッドプール
  • Amazon.co.jp: Java Concurrency in Practice (English Edition): Tim, Peierls, Goetz Brian, Bloch Joshua, Bowbeer Joseph, Lea Doug, Holmes David: Digital Ebook Purchas

  • プログラマメモ: Thread.yieldまた別の使い道

    Thread.yieldメソッドについての別の使い道についてのコメントをメールでいただきましたので、掲載します。 以前、 「ほとんどのプログラマによるThread.yieldの唯一の使い方は、テスト中にプログラムの平行性を意図的に増加させることです。」 「Effective Java」P.194 と書いたものについてへのコメントとなります。 引用は承諾済みです。 これ以外の理由として、スレッドが TSS で動作していた場合に、次のようなテクニックがあります。 synchronized ブロック内にいるときに TSS の時間切れで他のスレッドに CPU が渡されたとします。 CPU を渡されたスレッドがこの synchronized ブロックを待っていた場合、ブロックされているためせっかく割り当てられた CPU 時間をすべて synchronized ブロック待ちに使うことになります。 この

  • Android tips - モーダルダイアログの実現

    kobadroidのオリジナル曲紹介 概要 この記事は2011年頃の記事です(日付不 詳) Androidにはモーダルダイアログがないので、ウィザード的なフローを作るときに困ります。ここではスレッドを使ってモーダルダ イアログを実現する方法を紹介したいと思います。マルチスレッド処理になって若干プログラムの構成が複雑になりますが、反面モーダルダイアログが可能にな ることにより、バッチ処理的なフローがシンプルにコーディングでき、またモーダルダイアログが存在する他のフレームワークからの移植性が上がります(とは いえ、他にもっと スマートな方法があったら知りたいところです)。 重要な注意:下記の実装を利用するには、基的なマルチスレッドプログラミ ングの理解が必要です。言うまでもございませんが、自己責任でのご利用をお願いいたします。 やり方ですが、要はandroidのデフォルトのイベントループlo

  • 4. スレッドの制御 (2)

    4.2. スレッドの休止・中断 ここでは、スレッドの処理を一時休止したり、他のスレッドに割り込みをかけるためのメソッドを説明します。 sleep() sleepメソッドはThreadクラスのクラス(static)メソッドです。sleepメソッドは指定した時間だけ現在実行中のスレッドを休止させます。sleepメソッドはクラスメソッドのため、sleepメソッドを実行するスレッド以外の別のスレッドを休止することはできません。 sleepメソッドでの時間の指定方法は2種類あります。 sleep(long millis) sleep(long millis, int nanos); これらのメソッドは、millisミリ秒(1000分の1秒)、またはmillisミリ秒+nanosナノ秒(100万分の1秒)だけスレッドを休止させます。スレッドを休止している間、他に実行可能なスレッドがあれば、そちらに処理

  • 並列テストツールのConTestを試してみた : Everyday FunkiEE!!

    10月26 並列テストツールのConTestを試してみた カテゴリ:My JavaMy Programming 前回のエントリの予告どおり、並列処理のテストツールConTestやります。 Javaでスレッドセーフなstatic変数の初期化まとめ : Everyday FunkiEE!!当はこのエントリでConTestまで紹介する予定だったけど、1エントリで書くにはボリュームがあるので次回にまわそうと思います。 題材は前回のエントリと同じで、static変数の初期化です。 ConTestのインストールまずはインストールから。 ⇒alphaWorks : ConcurrentTesting - Advanced Testing for Multi-Threaded Applications : Overviewからzipファイルをダウンロードしてください。 解凍した中身のConTest.ja

  • ページが見つかりません | 日本HP

    ページが見つかりません。 目的のページは、移動または削除によって無効になっている可能性があります。申し訳ありませんが、検索またはリンク先よりお探しください。

  • Griffon 不定期便〜第3回 スレッド編 その1〜 - MyBetaBook

    G*なみなさま、こんにちは。今回からスレッド編として2回に分けてGriffonアプリケーションでのスレッドの扱い方を紹介していきます。今回はSwingアプリケーションでスレッドを扱うための基となるSwingのスレッドポリシーとGroovyのSwingBuilderでスレッドを扱う方法を紹介し、次回はGriffonでのスレッドの使い方をサンプルアプリケーションを作りながら紹介したいと思います。 Webアプリケーションの開発がメインでSwingアプリケーションにあまり馴染みのない方は、これまでにスレッドを扱う機会が少なかったかと思います。Webアプリケーションでは独自のスレッドを生成して処理するということはあまり必要とされません。しかし、Swingアプリケーションではスレッドの扱いを理解しておくことが大変重要になります。 SwingのスレッドポリシーSwingアプリケーションで発生するイベン

    kiyo_hiko
    kiyo_hiko 2013/09/24
    イベントのactionPerformedなどはEDTで走る 参考になる
  • Swingスレッド処理-003(時間のかかる処理の実行について) - いろいろ備忘録日記

    前回までの記事 http://d.hatena.ne.jp/gsf_zero1/20061104/p1 http://d.hatena.ne.jp/gsf_zero1/20061106/p1 前回、イベントディスパッチスレッドにて時間のかかる処理を行うとGUIがブロックされる 件について記述しました。そのような処理を行う場合、Swingでは以下のようにします。 時間のかかる処理の部分を別スレッドにする 上記の処理が終了した後で、コンポーネントをイベントディスパッチスレッドから更新 (1)は特に問題ありません。処理を別のスレッドに移すだけです。問題となるのが (2)です。時間のかかる処理を行った後で、コンポーネントを処理するわけですので 当然時間のかかる処理を行ったスレッドで行わざるをえないような形になってしまいます。 つまり、以下のような感じです。 jButton.setText("heh

    Swingスレッド処理-003(時間のかかる処理の実行について) - いろいろ備忘録日記
  • To invokeLater() or Not

  • できる!並列・並行プログラミング

    現在のマルチスレッドプログラミングの抱える問題点と、代替案をわかりやすく解説いたします。最近登場したConcurrent Revisionsも解説します。Read less

    できる!並列・並行プログラミング
    kiyo_hiko
    kiyo_hiko 2013/09/18
    Concurrent Revisions - 概要「バージョン管理のアナロジーで共有リソースを扱う」 へー