非同期処理を行う方法にAsyncTaskを使う方法があります。 AsyncTaskを使うとThreadやRunnableを意識することなく、 メインスレッドとは別のスレッドで処理を行うことができます。 非同期処理中であってもメインスレッドでの処理が可能です。 非同期処理を行う際、Handlerクラスを使って画面更新処理を行うと 少しコードが煩雑になってしまいますが、 AsyncTaskクラスを使うとそのような事がなく、 非同期処理と画面更新処理を行うことができます。 ■AsyncTaskに用意されている主なメソッド onPreExecute() doInBackgroundメソッドの実行前にメインスレッドで実行されます。 非同期処理前に何か処理を行いたい時などに使うことができます。 doInBackground() メインスレッドとは別のスレッドで実行されます。 非同期で処理したい内容を記
New I/O の非同期処理を実装する時にいつも使うパターンの個人的設計まとめ。非同期 I/O はアプリ要件によって設計を柔軟に変える必要があるので定石というわけではありませんし、安全に組み替えるにはそれなりの知識が必要です。 この記事が説明のベースにしているサンプルソースは My Design Pattern for Asyncronous I/O · GitHub に置いてあります。 非同期 I/O といえば 1 つのスレッドで複数のソケット I/O を管理する方法です。 非同期 I/O を生かした設計というものは必ず Producer/Consumer 型、イベント駆動型設計となります。これはパフォーマンスと引き換えにオブジェクト指向の汎用設計化を低下させ、特定の困難なバグを生む余地を増やします。個人的には C10K 問題を想定する必要がない程度 (同時に扱うソケット数が 1000
この節ではソケットを利用したサーバアプリケーションの作成方法を解説します。マルチスレッドで複数の接続を処理できるサーバの作成方法についても解説します。 3.1. サーバソケット 前節では、新しいSocketインスタンスを作成しサーバに接続するクライアントアプリケーションを作成しました。それでは、クライアントからの接続を受け付けるサーバはどのようにして実現するのでしょうか。接続を受け付けるためにはServerSocketクラスを用います。 クライアントのアプリケーションは、サーバに接続したいときにいつでも接続できます。接続先を指定してSocketのインスタンスを作成すれば、ただちにサーバへの接続が完了していました。しかし、サーバ側は、クライアントがいつ接続を要求してくるかわかりません。そのため、クライアントが接続してくるのをずっと待っていなければいけません。 接続を受け付けられる状態で待機す
ホーム 検索 - ログイン | | ヘルプ Java/JavaEE/Servlet含むJavaEE環境でのスレッド作成 or 非同期処理についてメモ(JavaEE6 - 7) [ Prev ] [ Next ] [ Java ] EJBとかJMSのような実践的なJavaEEは今まで触らず、もっぱらServletプログラミングばかり触ってましたが、最近になって「新しいJavaEEでは非同期処理がサポートされた!」とか目にしまして、「アレ?JavaEE環境ってスレッド作成しちゃ駄目だったの?」と今頃になって気になり、ちょっと調べてみました。 結論 JavaEE7使おうぜ! or JavaEEコンテナ環境を当てにせず独自実装で頑張ろう! JavaEE5以前 : 非推奨。 JavaEE6 : Servlet 3.0にて非同期処理に対応したので、スレッドっぽく使えそう。 JavaEE7 : EJB
Java7にて NIO2 として不完全だった NIO 系ライブラリが拡張されました。非同期 SocketChannel を使って簡単なサーバのサンプルをば。 Java6までの ServerSocketChannel と SocketChannel に対応する Asynchronous 系のクラスが追加されました。 AsynchronousServerSocketChannel AsynchronousSocketChannel Asynchronous 系はこのほかに以下もあります。 AsynchronousFileChannel AsynchronousDatagramChannel blog1.mammb.com の NIO によるHTTPサーバのサンプルを NIO2 で書いてみます。 Asynchronous 系 Channel と Future import java.io.IOE
Javaプログラミング TCP通信 ライブラリ使用イメージ¶ 目次Javaプログラミング TCP通信 ライブラリ使用イメージjava.netパッケージTCPサーバー側TCPクライアント側 java.nioパッケージ(ブロッキング)TCPサーバー側TCPクライアント側読み込み(read)処理 java.nioパッケージ(ノンブロッキング)TCPサーバー側TCPクライアント側 NIO.2非同期チャンネルNIO.2非同期チャンネル(Future使用)TCPサーバー側TCPクライアント側 NIO.2非同期チャネル(CompletionHandler使用)TCPサーバー側 各ライブラリの使用イメージ(コンパイルは通らない主要APIの呼び出しイメージ)を次に載せます。 java.netパッケージ¶ TCPサーバー側¶ ServerSocket server = new ServerSocket(123
Java 1.5以降では Executorsフレームワーク 利用を優先検討のこと。 遅延実行(タイマー) クラス / メソッド 概要 Since
C言語でSocketを使って通信する物を作るのだが、 1対多の通信 非同期通信 プロセスとスレッドを使わない。 という条件になると、必然的にselectを使った通信になる。 レスポンスはこの際置いておいて、条件を満たせれば良いとする。 メモ書き程度なモノだし、間違っているかもしれない。 参考 http://www.golgo.jp/winsock.html winsockプログラミング:Geekなぺーじ 非同期通信 まず非同期通信の前に対義語の同期通信を知る必要がある。 同期通信とは、例えばキーボード入力する必要があるときは入力を終えるまで待つ。 非同期通信は、まんま逆で、入力を待たない。 どういうときに非同期通信をするのかといえば、例えば会話。 会話をするときは、1文話して1文聞く。 しかし、聞く為には、発言をするまで待たないといけない、とした場合、 自分が発言して相手の発言を待つ、と相
DefaultHttpClientを使ってコンテンツを取得するではDefaultHttpClientをつかってHTTPリクエスト(Get)を処理しました。 今回はPostリクエストを行い、サーバーへコンテンツを送ってみます。また、前回では簡単化のために説明を省いていましたが、HTTPリクエストなど非同期通信処理はUIスレッド以外で実施しないと、レスポンスが悪化したり、強制終了(ANR)の原因となったりします。Postリクエスト処理時にAsynctaskを使って非同期処理を行うのように、AsyncTaskで別スレッドを作成、非同期化を行うまでを解説します。 HTTPリクエスト Postメソッド AsyncTaskによる非同期処理化 サンプルコードは続きから。 1.HTTPリクエスト Postメソッドの実装 DefaultHttpClientをつかってコンテンツを送信してみましょう。以下のサン
■Java側--------------------------------- public class F1 extends JFrame { private JPanel contentPane; static final int PORT = 10000; /** * Launch the application. */ public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { F1 frame = new F1(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); ServerSocket serverSocket = nu
こんにちは、@yoheiMuneです。 今日はObjective-Cを用いた実装で、処理が終わった際に呼び出し元を呼び出す方法として、SelectorとBlockの実装をブログに書きたいと思います。 コールバックをSelectorやBlockで実装するとは node.jsやjavaScriptのXHRを用いた実装では一般的なアーキテクチャで、 HTTP通信やファイルIOなどの処理が終わったら、結果を呼び出し元に通知するコールバックの実装をObjective-Cで実装する方法を記載した記事となります。 HTTP通信やファイルIOは時間のかかる処理で、その処理をメインスレッドで行う(=同期で処理する)と、UI描画が止まってしまい、残念なアプリになってしまいます。 それに対応するため、HTTP通信やファイルIOはサブスレッドで行い、終わったら呼び出し元に通知するコールバック型のアーキテクチャがい
イベント委譲モデル ボタンにアクションを記述する際、前回の講義では次のように javax.swing.AbstractAction を継承したクラスを使って行っていた。 package j2.lesson10.example; import java.awt.event.ActionEvent; import javax.swing.AbstractAction; import javax.swing.JLabel; import javax.swing.JTextField; public class TextFieldAction extends AbstractAction { private final JTextField textField; private final JLabel label; public TextFieldAction(String name, JTex
対象ソフトウエア:Windows 7/Windows 8/Windows 8.1/Windows Server 2008 R2/Windows Server 2012/Windows Server 2012 R2 解説 2015年2月中旬、レノボ製の個人向けPCの一部にプレインストールされた「Superfish」というソフトウエアが、深刻なセキュリティ上の問題を引き起こす危険性があることが報道された。 LenovoのノートPCに不正なアドウェア、SSL通信を傍受(ITmediaエンタープライズ) Lenovo、「Superfish」プリインストールについて公式見解を発表(ITmedia PC USER) Lenovo、不正ソフトの削除ツール公開 他のアプリに影響も(ITmediaエンタープライズ) このソフトウエアは、一緒にインストールされた「CAルート証明書」を利用して、同じコンピュータ
Dropbox helps you create, share, and collaborate on your files, folders, and documents. Learn how to download and install Dropbox.
Recent entries 宣伝:C/C++のための開発補助ツール、GCCSenseをリリースしました matsuyama 2010-04-15 宣伝:Rubyのための開発補助ツール、RSenseをリリースしました matsuyama 2010-03-21 Emacsは死んだ matsuyama 2010-02-22 WebアプリケーションをiPhoneに対応させるための技術メモ matsuyama 2009-10-13 tokyo-emacs#x02の個人的レポート matsuyama 2009-09-07 Recent comments replica louis vuitton Anonymous User 2010-12-22 Re:テキスト入力中に補完候補を自動的に表示してくれる auto-complete.el をリリースしました Anonymous User 2010-12
業務用ロボットの多くは独自システムを採用しているが、この実験的マシンであるKUKAアームは、Arduino MEGAを使って6軸の3Dプリントをコントロールし、自然界に存在する形状を模倣している。 カスタムツールヘッド(3Dプリント・エクストルーダー)を装着したこのKUKAアームは、サイズは大きいが、よく見てみると、温度とエクストルーダーのコントロールはArduino MEGAで行なわれていることがわかる。Arduino MEGAは、デスクトップ3Dプリンターの生みの親であるRepRapコミュニティーのお気に入りだ。 マシンレイアウト このプロジェクトの目的のひとつに、自然界で発見された形状を再現する技術のデモンストレーションがある。 蜘蛛の糸の微小な構造を模倣することで、新しい製造方式が作業工程に加わりました。これにより、自分で自分をサポートする単純な形状が作れるようになり、それが地面か
知財×ブラック この物語は、気弱な主人公が少しの勇気をもつことで、不正な職場環境の改善のため立ち上がる企業ドラマです イントロダクション 蘇普斗 清正(そふと きよまさ)は、ITサービス企業「カリスマックス」の情報システム部で働く入社2年目の若手サラリーマン。おとなしく気が弱い反面、正義感だけは人一倍強い彼は、社内のコンプライアンス促進にも熱心に取り組んでいる。 そんな清正が籍を置く情報システム部門の天敵が、花形部門の「アプリ開発部」だ。3年前の立ち上げ以降ヒット作を連発したアプリ開発部は、同社の成長の原動力となっている反面、その成長スピードにコンプライアンス意識が伴わず、ソフトウェア不正コピーの温床となっていた。 不正コピーに気づいている清正は上司とともに作戦を考えるが、発言力が大きく社長からも絶大な信頼を寄せられているアプリ開発部長の豪田に阻まれ、あえなく撃沈。 無力な自分にやりきれな
Samba 3.5系以降の全バージョンに脆弱性が存在する。悪用された場合、認証を経ることなくリモートからroot権限で任意のコードを実行される恐れがある。 LinuxやUNIX系システムが採用しているオープンソースのファイルサーバソフトウェア「Samba」に深刻な脆弱性が見つかり、Linuxディストリビューター各社が更新版をリリースして対処している。 Red Hatのブログによると、脆弱性はsmbdファイルサーバデーモンで初期化されていないポインタが使われていることに起因する。細工を施したパケットをSambaサーバに送り付けることによって悪質なSambaクライアントに悪用される恐れがあり、認証を経ることなくリモートからroot権限で任意のコードを実行される恐れがある。 ただ、現時点でこれが実際に通用する形で再現された事例は確認されていないという。 この脆弱性はSamba 3.5系~4.2系
フォームローラーでほぐし続けた結果...ようやくわかった効果とメリット3つ #Amazonプライムデー
当方からはVPSサーバーの運用・保守・監視を依頼をさせていただきます。 (1)業務の内容につきまして (2)ご応募につきまして (3)重視すること (1)業務の内容につきまして 当方はベッドやソファを中心としたECサイトを運営しております。全てのECシス テムをVPS上に mySQL を使って運用しております(phpmyadminが入っています)。 本番稼働しているVPSは7台で、社内システムが入っているVPSが1台、バックアップ 用のVPSが1台あります。 これらのサーバに対しまして、 ・サーバーリソース監視(zabbixが入っています) ・必要時の動作ログチェック ・ユーザーアカウント(FTPアカウント)の追加/削除 ・バーチャルドメインの追加/削除 ・その他のサーバー運用・管理業務 などをお願いいたします。各種追加・削除などはスポット的に発生するのみなの で、通常は、サーバ監視・モニ
私は大学で調査統計の授業(3年生対象)を持っていますが,エクセルで簡単な棒グラフを作れない学生さんが結構いることに驚いています。 話を聞くと,「エクセルなんて,1年時のコンピュータ活用の授業以来,全然開いていない。きれいさっぱり忘れた」とのこと。それどころか,パソコンに触れることもあまりないのだそうです。じゃあ,彼らの生命線ともいえるネットはどうしているのかというと,言わずもがなスマホなどの小型機器です。仲間との通信,買い物,情報収集などはこれで十分。 私などはその逆で,ケータイもスマホも持ちませんが,卓上のパソコンは必需品です。ネットはスマホでもできますが,私は目が悪いので,小さい画面はきつい。それに生業であるデータ分析や原稿執筆は,パソコンでないとどうにもなりません。 私は,若者のデジタル事情について興味を持ち,データで実態を明らかにしてみました。国際比較によって,わが国の状況を相対化
Windows 上で Android を動かせるエミュレータソフト「DuOS」に Google Play ストアを始めとした Google アプリを追加する方法を紹介します。 この記事で紹介する方法はカスタム ROM で定番の Google アプリ群(通称:GApps)をリカバリモードから導入するというものです。DuOS には標準機能として Widows からリカバリモードを介して ZIP ファイルをインストールする操作を搭載しており、専門知識など無く作業を完了できます。 まずは、gpo.im から GApps をダウンロードします。DuOS の OS は Android 4.2.2 なので、現行最新の「gapps-jb-20130813-signed.zip」を選択すればよいでしょう。 次に DuOS を起動させ、GApps をダウンロードした Windows 上のフォルダに移動し、ZI
こんにちは。インフラチームの野島です。 最近、cybozu.com はロードバランサを Apache から nginx に置き換えました。 (参考: cybozu.com のリバースプロキシを nginx にリプレイス) 置き換えの一環として、Apache に実装していた DoS 対策の仕組みを nginx の拡張モジュールにする形で移植しました。今回、この拡張モジュール nginx-maxconn-module を OSS として公開しましたので紹介します。 背景 DoS 対策 秒間リクエスト数 v.s. 瞬間同時リクエスト数 実装方針 nginx-maxconn-module 基本的な使い方 高度な使い方 インストール おわりに 背景 本題に入る前に、cybozu.com において、HTTP リクエストがどのように処理されているかを説明します。 cybozu.com では、負荷分散のた
This blog site has been archived. Go to react.dev/blog to see the recent posts. Over the weekend we pushed out our first (and hopefully only) release candidate for React v0.13! We’ve talked a little bit about the changes that are coming. The splashiest of these changes is support for ES6 Classes. You can read more about this in our beta announcement. We’re really excited about this! Sebastian also
流行ってるみたいなので遅ればせながら便乗。需要?何それおいしいの? Perl基礎文法最速マスター - サンプルコードによるPerl入門 - Perlプログラミングの基礎から応用まで Route 477(2010-01-25) PHP基礎文法最速マスター - Shin x blog Python基礎文法最速マスター - LazyLife@Diary VBA基礎文法最速マスター - いろいろ解析日記 Java基礎文法最速マスター - いろいろ解析日記 Bash基礎文法最速マスター - いろいろ解析日記 Haskell基礎文法最速マスター - think and error Brainf*ck基礎文法最速マスター - このブログは証明できない。 VBScript 基礎文法最速マスター - CX's VBScript Diary - VBScript グループ JavaScript基礎文法最速マス
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く