タグ

Threadに関するwalk77のブックマーク (10)

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

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

    Threadの割り込みを活用する - プログラマーの脳みそ
  • Spring and Java Thread example - Mkyong.com

    Here are 3 examples to show you how to do “threading” in Spring. See the code for self-explanatory. 1. Spring + Java Threads example Create a simple Java thread by extending Thread, and managed by Spring’s container via @Component. The bean scope must be “prototype“, so that each request will return a new instance, to run each individual thread. package com.mkyong.thread; import org.springframewor

    Spring and Java Thread example - Mkyong.com
  • 初心者向けJava Thread Programming

    かなり初心者向きの記事です。 JavaのThreadプログラミングといえば、昔はThreadクラスをnewしてstart()して、定期実行やThread終了の待ち合わせは全部自前で頑張るという古典的な方法でしたが、java.util.concurrentパッケージが登場して...

  • Timerを使う。周期的に実行したり、一定時間後に実行したり

    javax.swing.Timer Swingのクラスライブラリの1つとして提供されている。一定時間後にイベントを実行することができる。これは、Swingのイベントスレッドで実行されるので、描画に関わる処理を記述していてもSwingスレッドと干渉しないで済むのがメリット。実行はSwingのイベントキューに載せられるため、正確性には欠ける。 java.util.Timer 汎用のタイマとして提供されている。処理を周期的に実行したり、一定時間経過後に実行したり、指定した日時に実行したりと多彩な機能を持つ。Swingとは無関係なので、ヘッドレス(GUIが無い環境)でも使用できる。Timer専用スレッドで管理され、正確性もjavax.swing.Timerよりは高い。しかし、java.util.Timerの実装上欠点がいくつかある。まず、スケジューリングにシステムクロックを使用するので、システムク

  • 虎の穴 J2SE 5.0 入門 Concurrency Utilities No.1

    マルチスレッドのアプリケーションはいろいろ時をつけなくてはいけないことがあります。同期や同時アクセスやプライオリティ、デッドロックなどなど。 Java では安易にスレッドを作ることができるのでいつのまにかスレッドをたくさん使っていたなんてことも起こりがちですが、そのつけは大きいです。 そんなマルチスレッドのアプリケーションを作る際に福音書となっているのが Java スレッドプログラミング です。残念ながら今は品切れで入手が困難なので、もし屋に残ってたらすぐにでも購入したほうがいいです。 マルチスレッドと同様このも内容が難しくて、なかなか理解するのが大変なんですが、マスターできたら鬼に金棒状態です。そして、このの作者が Concurrency Utilities の原型を作った Doug Lea なのです。 Concurrency Utilities では次のような機能を提供しています

  • 死刑執行中 ExecutorService 実行中 - 倭マン's BLOG

    最近『Java並行処理プログラミング ―その「基盤」と「最新API」を究める―』で Java の並行処理プログラミングを勉強中なんですが、ExecutorService の使い方あたりで完全に消化不良に陥ってしまったので、知識の整理を敢行。 今回は ExecutorService を使ってタスクを実行する方法を見ていきます。 『Java並行処理プログラミング ―その「基盤」と「最新API」を究める―』の第II部を参考にしてます。 ちなみに、この記事(と以降の関連記事)では、「タスク」とは java.lang.Runnable オブジェクト java.util.concurrent.Callable オブジェクト のどちらかを指して使っています。 たまに java.util.concurrent.Future オブジェクトを、対応するタスクと同一視して指している場合もあります。 記事内容 E

    死刑執行中 ExecutorService 実行中 - 倭マン's BLOG
  • java.util.concurrentパッケージを用いたマルチスレッドプログラミングについて

    はじめに Java SE 6時点では、マルチスレッドプログラミングを行う素材として、当初から持つThreadクラスと、Java 5で追加されたjava.util.concurrentパッケージがあります。また、Swing GUI上でスレッドを扱う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 Thread Pool Example using Executors and ThreadPoolExecutor

  • [Java]ExecutorServiceの正しい終了(shutdown)の仕方 | 大発見 | 大発見

    photo credit: Juan Antonio Capó ExecutorServiceを使うと簡単にマルチスレッド処理が行えますが、 終了もshutdownメソッドを呼ぶだけと思っていませんか? shutdownメソッドだけだと不十分です。 学校の先生と生徒の関係で説明します。 shutdownメソッドは指示するだけ 学校で先生が生徒に対して、「問題が解けたら教えてねー」と言います。 生徒は問題が解けた人から「先生できたー!!」と言ってきます。 全員問題が解けた段階で授業が終わるとしましょう。 対応はこう。 先生: ExecutorService 生徒: ExecutorService内のスレッド 問題: ExecutorService.executeに渡すタスク(Runnable) 授業: mainスレッド 学校: Javaプロセス 「問題が解けたら教えてねー」

  • Javaマルチスレッディングその1(Executorとタスクキュー) - らこらこブログ

    Androidアプリ開発を想定した上で一般に使えるJavaのマルチスレッディングについてのメモ書きです。 全部を解説するにはページが足りないので、タスクキューの実装を例に触れていきます。 (Java SE 6以上) Executor まずはExecutorについての説明を。Java SE 6でスレッドを生成する方法は ・new Thread … Threadインスタンスの直接的な生成 ・Executorインタフェースを実装したクラスのインスタンスを生成し、別スレッドでの処理を依頼する(executeメソッド等) ・SwingWorkerを用いる Swingに関しては今回はAndroid環境を想定しているので除外します。 Threadインスタンスを直接生成するのは古くから用いられてきた方法ですが、単純故に自由度が大きい反面周期実行や遅延実行、スレッドプールなどの実装を全て自分で行わないといけ

    Javaマルチスレッディングその1(Executorとタスクキュー) - らこらこブログ
  • 1