タグ

multithreadとjavaに関するakishin999のブックマーク (5)

  • ダブルチェックの代わりに・・・ - Shammer's Philosophy

    JSR 133に、Javaのメモリモデルについての情報がある。 そして、この情報は和訳されている様子。 http://www.javareading.com/bof/cookbook-J20060917.html reorderとか、volatileの話など、かなりマニアックな情報だ。 さらに、FAQの話もある。先のダブルチェックはNGという話もここに情報が・・・ http://www.cs.umd.edu/~pugh/java/memoryModel/jsr-133-faq.html このようにすれば、複数スレッドからアクセスされても安全な実装になるらしい。 public class InitializeOnDemandHolder { private static class LazyHolder { public static InitializeOnDemandHolder sin

    ダブルチェックの代わりに・・・ - Shammer's Philosophy
  • 幸せな非同期処理ライフを満喫するための基礎から応用まで - Qiita

    クライアントアプリにとって、マルチスレッドプログラミングは避けては通れない重要な概念です。しかし、気をつけないとハマるポイントも多く、初めてクライアントアプリを学ぶ人たちからすると、複雑で難解な取っつきづらいものでもあります。ここでは、スレッドの基から、効率的な使い方、また複雑化しやすいポイントをシンプルに実装するためのノウハウを見ていきます。 TL;DR スレッドの取り扱い方を知る Threadをそのまま使わず、AsyncTaskやIntentService、時にThreadPoolExecutorを使ってスレッドの使い方を効率化する。 複雑な処理フローをシンプルに扱うためのフレームワークを導入する PromiseやRxAndroidなどで、複雑化しやすいポイントを整理する。 スレッドの基 スレッドといえば、ThreadクラスやRunnableクラスがベースにあります。以下のようにす

    幸せな非同期処理ライフを満喫するための基礎から応用まで - Qiita
  • 比較:並行処理 - Java とScala とGo - | TECHSCORE BLOG | TECHSCORE BLOG

    こんにちは、馬場です。 完全に出遅れていますが、個人的に触ってみたかったGo言語と戯れてみたいと思います。Go 言語といえば並行処理ですよね。せっかくですので、他の言語Java 8 / Scala 2.11 と比較しながら見ていきたいと思います。 お題:二分探索木を比較する。 並行処理のお題は、超充実しているGo 言語のチュートリアルTour of Goのエクササイズ、Equivalent Binary Tree です。 二分探索木とは、子の数が最大2である二分木で、「あるノードの左の子およびその全ての子孫ノードの持つ値はそのノードの値より小さく、右の子及びその全ての子孫ノードの持つ値はそのノードの値より大きくなるように構成した」もの(Wikipedia)です。 2つの二分木が、形はちがえど同じ値を保持している場合があります。そのために、 1. 二分探索木を生成し、 2. 2つの二分木の解

  • マルチスレッドプログラミングのFutureパターン – ザワプロ!

    マルチスレッドプログラミングのパターンの一つにFutureパターンというものがある。 これは、ある処理を別スレッドで非同期に実行させて、その結果を受けたいときに用いられるパターンである。 特徴的なのは、処理の実行担当者(JavaではExecutorServiceがそれにあたる)は、処理(JavaではCallable)が渡されると別スレッド上で処理を開始して、メインスレッドには即座にFutureオブジェクトを返すことである。 なぜこのオブジェクトがFutureと呼ばれるかというと、今現在はまだ結果を取得できないが、将来のある時点で取得することになるからである。 その後、Futureのget()メソッドを呼ぶと、メインスレッドはCallableの処理が終わるまでブロックされる。 そして別スレッドで処理が終わった時点で結果が取得できる。 プログラム例を以下に示す。 public static v

  • Efficient data transfer through zero copy

    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.

    Efficient data transfer through zero copy
  • 1