Movatterモバイル変換


[0]ホーム

URL:


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

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

アプリで開く

はてなブックマーク

タグ

関連タグで絞り込む (7)

タグの絞り込みを解除

threadに関するs17erのブックマーク (16)

  • Threadの割り込みを活用する - プログラマーの脳みそ

    確実に一定時間スリープする - terazzoの日記ではThreadの割り込みがあっても確実に一定時間の停止を試みているが、そもそもこのようなコードは書いてはいけない。 Thread.sleep()は一定時間止まるための便利メソッドとしてよく知られているが、そのときに発生するInterruptedExceptionについての理解は広まっていない気がする。割り込みとはなんなのか。どういう時に使うのか。 目覚まし時計 お昼休みに昼寝をしようとする。寝過ごすといけないので15分後にアラームを鳴らす設定をした。 さて、ひと眠りするか、というところに友人がやってきた。昼寝はやめて売店に行くことにした。果たして売店でアラームが鳴り始めた。 さて、このとき、アラームは15分間の待機を命じられたわけだけども、お昼寝がキャンセルされたことで、もう待機しなくてよくなってしまった。むしろ、さっさと待機をやめてく

    Threadの割り込みを活用する - プログラマーの脳みそ
    • wait, notifyはもう古い - かとじゅんの技術日誌

      スレッドでシグナルを送受信する場合は、典型的にwait, notifyのAPIがよく使われてきました。 でも、Java5以降ではもう古いんですよ。そのやり方。concurrentパッケージにCountDownLatchというクラスがあります。これで同様のことがすごくシンプルに実現できるんです。(Seasar-usersでもwait/notify使った回答を投稿したのですが、Java5以降なら当はこっちを使うべきです)java.util.concurrent クラス CountDownLatch たとえば、以下のような複数スレッドの開始シグナルと終了シグナルで同期する場合です。 CountDownLatch自身が保持しているカウント数 - countDownメソッドが呼ばれた回数でゼロなったとき、awaitメソッドが待機せず、それ以外は待機します。その特性を使って開始や終了のシグナルを実

      wait, notifyはもう古い - かとじゅんの技術日誌
      • java.util.concurrentパッケージを用いたマルチスレッドプログラミングについて

        はじめにJava SE 6時点では、マルチスレッドプログラミングを行う素材として、当初から持つThreadクラスと、Java 5で追加されたjava.util.concurrentパッケージがあります。また、SwingGUI上でスレッドを扱うjavax.swing.SwingWorkerクラスもJava SE 6から追加されています。Java SE 6におけるスレッドの生成方法java.lang.Threadクラスのインスタンスをnewで生成し、start()メソッドを呼ぶjava.util.concurrent.Executorインタフェースを実装するクラスのインスタンスを取得し、execute()などの別スレッドで実行を依頼するメソッドを呼ぶjavax.swing.SwingWorkerクラスのサブクラスを定義し、そのインスタンスをnewで生成し、Swingスレッド(Eve

        • Java の ExecutorService の使い方 - Java 入門

          Java の ExecutorService でスレッドプールを利用できる ここで説明するのは、おそらくもっとも安全にマルチスレッドプログラムを書く方法です。 さらに同様の方法で簡単に拡張することで、複数のスレッドを効率よく使うスレッドプール (Thread Pool) を利用できますので、 ぜひ覚えておきたい方法です。 その方法とは、 ExecutorService を利用することです。 ExecutorService では、 「Java のマルチスレッド・プログラミングの基」 でみたように Thread オブジェクトをそのまま生では使いません。 ExecutorService ではスレッドプールが用意されるので、そこにタスクがディスパッチされることで処理が行われます。Java のタスクの状態 Executor によって処理されるタスクの状態は次の四つです。created (作成さ

          Java の ExecutorService の使い方 - Java 入門
          • デザインパターン(マルチスレッド) - 自分用メモとか

            Single Threaded Execution(Critical Section) パターン † 一度に1つのスレッドしか実行できないようなメソッドを指します(要は排他制御のこと)。 つまり、Javaでは、synchronizedをつけるだけです。C++(Windows環境)では、クリティカルセクションオブジェクトを用います。 synchronized なメソッドを実行中は、そのオブジェクトがロックされます。 (他のスレッドがオブジェクトのメンバにアクセスすることができなくなる) 例えば以下のコードでは、safeMethod()が synchronizedな時とそうでない時で実行結果が異なります。 public class ThreadSafeSample { int x = 0; /// スレッドセーフにしたいメソッド public synchronized void saf

              • Thread Synchronization Mechanisms in Python

                This article discusses how to synchronize access to shared resources and otherwise coordinate execution of threads. Synchronizing Access to Shared Resources One important issue when using threads is to avoid conflicts when more than one thread needs to access a single variable or other resource. If you’re not careful, overlapping accesses or modifications from multiple threads may cause all kinds

                • Python でマルチスレッドプログラミング - trial and error

                  こんにちは。 最近いろいろごたついてて、ブログなんか更新してませんが、それなりに充実した生活を送っているのでご心配なくw ところで、今日はいつもどおりPython の話題です。 いま、某 LUG であるプログラムを作っているのですが、その中でマルチスレッドを使えたらなーと思って、ちょっといじってみました。 マルチスレッドが使えると...: 複数の作業を並列して実行できる 一定間隔で何かを実行するような処理を簡単にできて便利。CPU を有効的に使える などいろいろ利点がありますが、今回は主に 2 番目のものをターゲットにしてみました。 結局、1番目も関わってくるんですけどね。Python でスレッドを生成するには、threading モジュールを使うのが便利です。 http://www.python.jp/doc/release/lib/module-threading.html こい

                  • Delphi Tips - マルチスレッドアプリケーション

                    Delphi Tips - マルチスレッドアプリケーション 概要: Delphi Tips - マルチスレッドアプリケーション Delphi 2.0J/3.1Jには、Win32でサポートされているマルチスレッドアプリケーションを簡単に作成することのできる、TThreadオブジェクトが用意されています。ここでは、Delphi 2.0J/3.1Jでのマルチスレッドの使い方を説明します。 1. TThread プログラムは、メモリ上にロードされ、ひとつの「プロセス」として実行されます。プロセスは、ひとつのスレッドから起動しますが、ひとつのプロセスから、複数のスレッドを生成することもできます。ひとつのプロセスは、ひとつの仮想アドレス空間を持ちます。 「スレッド」とは、プログラムの一部の実行単位です。スレッドは、 オペレーティングシステムがCPU時間を割り当てるときの基単位です。ひとつのプロセスの

                            • Delphi Acid Floor

                              Windows でマルチスレッドを実現するにはCreateThreadAPI などを駆使する必要があります。 Delphi ではこれらのAPI をカプセル化した TThread クラスが用意されています。今回はこの TThread クラスを利用した簡単なマルチスレッドアプリケーションの構築方法をご紹介します。 TThreadクラス TThread クラスは単にCreateThreadAPI をラップしているだけでなく、別スレッドから安全に VCL にアクセスする手段を提供しています。「安全にアクセスする」 とは、複数のスレッドが同一のメモリ領域をアクセスしないようにすることです。椅子取りゲームでふたりがひとつの椅子に座っちゃうようなことを防ぐ仕組みが TThread クラスにはあるのです。 スレッドとは? スレッドとは実行されているプロセスの一部です。言い換えればプロセスとは1つ

                              • ゲームループ

                                今までは、paint内で描画処理を描いたり、キー入力などのイベントが来てから処理を描いていました。 しかし、ゲームなどのリアルタイムな処理を必要とする作品を作るには少々不便です。 こういう場合は、イベントドリブンで動くメッセージ処理のメインスレッドとは別に、 常に走り続けているスレッドを新規に作成して、ゲームループとして使うのが良いでしょう。 そこで、今回はゲームループの雛形を作ってみたいと思います。 ついでに、メールや電話などから一時停止があった場合からの復帰処理にも対応してみましょう。 以前までのコードとは全体的に変わってくるので、全て書き直してください。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40

                                  • 残りのブックマークを読み込んでいます1

                                  お知らせ

                                  公式Twitter

                                  • @HatenaBookmark

                                    リリース、障害情報などのサービスのお知らせ

                                  • @hatebu

                                    最新の人気エントリーの配信

                                  処理を実行中です

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

                                  j次のブックマーク

                                  k前のブックマーク

                                  lあとで読む

                                  eコメント一覧を開く

                                  oページを開く

                                  はてなブックマーク

                                  公式Twitter

                                  はてなのサービス

                                  • App Storeからダウンロード
                                  • Google Playで手に入れよう
                                  Copyright © 2005-2025Hatena. All Rights Reserved.
                                  設定を変更しましたx

                                  [8]ページ先頭

                                  ©2009-2025 Movatter.jp